From 6a54ac5a9630699ad764d88cf227d3564cb585f6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AF=BB=E8=A7=85?= Date: Thu, 11 Jul 2024 16:58:03 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=96=B0=E5=A2=9E]=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=91=BD=E4=BB=A4=E8=A1=8C=E5=B8=AE=E5=8A=A9=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E4=BB=A5=E5=8F=8A=E9=A2=84=E8=AE=BE=E5=AE=89=E8=A3=85=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E4=B8=8E=E5=8F=AF=E9=80=89=E9=95=9C=E5=83=8F=E6=BA=90?= =?UTF-8?q?=E5=AE=89=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .安装.zsh.swp | Bin 0 -> 36864 bytes 公共/开发环境.zsh | 4 +- 安装.zsh | 124 ++++++++++++++++++++++++++++++++++------------ 3 files changed, 94 insertions(+), 34 deletions(-) create mode 100644 .安装.zsh.swp diff --git a/.安装.zsh.swp b/.安装.zsh.swp new file mode 100644 index 0000000000000000000000000000000000000000..a06385dad1c678389fe3cf5e821d3b3d5277f71c GIT binary patch literal 36864 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

8U*&OEvyGuDxLY6z`c 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 J52l*8{tNv?w7viU literal 0 HcmV?d00001 diff --git a/公共/开发环境.zsh b/公共/开发环境.zsh index 5e0e7c9..dc20687 100644 --- a/公共/开发环境.zsh +++ b/公共/开发环境.zsh @@ -1,9 +1,9 @@ #!/usr/bin/zsh ##################################### -# 自动配置常用开发环境 # +# 自动配置常用开发环境 # # [x] go # -# [ ] rust # +# [x] rust # # [ ] java # # [ ] nodejs # ##################################### diff --git a/安装.zsh b/安装.zsh index 77dbc6e..a06e4bc 100755 --- a/安装.zsh +++ b/安装.zsh @@ -9,15 +9,16 @@ source /etc/os-release # 脚本在执行过程中遇到任何非零返回码的命令时立即退出 # set -e -readonly 言灵一版本="v1.0.1" +readonly 言灵一版本="v1.1.0" ############################################################################### # 全局变量 # ############################################################################### -typeset -a 通用一包列表=('wget' 'curl' 'git' 'vim' 'ctag') +typeset -a 通用一包列表=('wget' 'curl' 'git' 'vim') typeset -a 架构一包列表=() typeset -a 系统一包列表=() + readonly CPU一架构="$(uname -m)" readonly 系统一类型="$(uname -s)" readonly 系统一版本="$(uname -r)" @@ -34,6 +35,27 @@ else 特权="" fi +typeset -a 预设一默认=("vim" "zsh") +readonly 言灵一镜像站="http://yum.gdie.top:50200/ylib/" +配置一预设=false +配置一镜像=false +# 帮助信息 +帮助一信息=$(cat < 位置参数 1 <- 拉取`作者/仓库名` # *-* -> 位置参数 2 <- 保存地址, 保存到本地的哪个路径 获取一git(){ - git镜像="https://gitcode.com/mirrors" 色彩一灰色 - 输出 2 "正在拉取 $1 ..." - git clone --depth 1 -q ${git镜像}/$1.git $2 + if [ -z "$2" ]; then + 输出 2 "正在拉取 $1 ..." + else + 输出 2 "正在拉取 $1($2) ..." + fi + + if [ -z "${配置一镜像}" ]; then + git clone --depth 1 -q ${言灵一镜像站}/${1#*/}.git $2 + else + git clone --depth 1 -q "https://github.com/$1.git" $2 + fi 色彩一清除 } @@ -68,11 +98,6 @@ fi ;; *loong*) 主机一架构="龙" - # 6之前除了5.19以外的所有内核都是旧世界 - #if [[ ${系统_版本} =~ ^[3,4,5].+ && !${系统_版本} =~ ^5.19.0-.+ ]]; then - # 世界_类型="旧世界" - #fi - # 使用更高级的方法判断新旧世界 # 龙架构二进制 第四行是43开头是新世界, 03开头是旧世界 世界一类型一标志位=$(hexdump -s 48 -C /usr/bin/sh | head -n 1 | awk '{print $2}') if [[ ${世界一类型一标志位} == "43" ]];then @@ -100,7 +125,6 @@ fi *debian*) if [[ ${系统一发行版一名称}=="Ubuntu" ]]; then 系统一发行版一标识符="乌班图" - 系统一包列表=('universal-ctags') fi ;; *openwrt*) @@ -174,6 +198,11 @@ fi 优化一常用命令一vim(){ 输出 2 "启动vim优化, 安装代码检查和树状目录插件, 并优化配置(具体配置可以查看 $HOME/.vimrc 文件)" + + # 安装tag + typeset -a 标签包名=('universal-ctags' 'ctag') + 批量安装 标签包名 && 输出 0 "通用包安装完毕" + vim一配置路径=$HOME/.vim/pack/xunmi 色彩一灰色 if [ -f $HOME/.vimrc ]; then @@ -184,7 +213,6 @@ fi mkdir -vp ${vim一配置路径}/{opt,start} vim说明=${目录一根}/配置/vim配置说明.vim 获取一git scrooloose/nerdtree ${vim一配置路径}/start/树状目录 - 获取一git dense-analysis/ale ${vim一配置路径}/start/代码检查工具 获取一git jiangmiao/auto-pairs ${vim一配置路径}/start/括号补齐 获取一git preservim/nerdcommenter ${vim一配置路径}/start/注释工具 获取一git vim-airline/vim-airline ${vim一配置路径}/start/VIM状态栏 @@ -195,17 +223,6 @@ fi # if 是否 "是否启用基于c的模糊搜索(默认使用python, c的性能会好很多)"; then # vim -c ":LeaderfInstallCExtension" ${vim说明} # fi - 获取一git ludovicchabant/vim-gutentags ${vim一配置路径}/start/标签生成器 - if 是否 "是否需要安装vim代码补全工具(代码补全工具需要nodejs支持, 如找不到nodejs脚本将会自动安装)"; then - 输出 2 "默认会安装 shell c/c++ cmake go java json markdown perl python r rust 语言的补全" - 色彩一灰色 - 获取一git neoclide/coc.nvim ${vim一配置路径}/start/代码补全 - # todo: 这里调用一个nodejs的检查工具 - # 编译和启动 - npm -C ${vim一配置路径}/start/代码补全 i && npm -C ${vim一配置路径}/start/代码补全 ci - vim -c ":CocInstall coc-sh coc-clangd coc-cmake coc-go coc-json coc-java coc-markdownlint coc-perl coc-pyright coc-r-lsp coc-rls" ${vim说明} - # 是否 "是否安装前端相关代码补全工具(html css js/ts vue)" && vim -c ":CocInstall coc-css coc-html coc-tsserver coc-vetur" ${vim说明} - fi 色彩一清除 输出 0 "Zsh优化完成" } @@ -259,15 +276,24 @@ fi ["top"]="使用xmtop替代老旧的top系统信息监控功能" #["sed"]="使用学习成本较低的sd替代sed" ) - 输出 2 "正在优化 ${(k)列表} 命令" - # 遍历关联数组 - for 键 值 in ${(kv)列表}; do - if 是否 "是否启动 '${键}' 命令优化 -> ${值} <- "; then - 优化一常用命令一${键} - else - 输出 3 "已取消 ${键} 的优化" - fi - done + # 查看预设是否被启动 + if ${配置一预设}; then + 输出 2 "正在优化 ${预设一默认} 命令" + for 默认 in "${预设一默认[@]}";do + echo "正在启动 ${默认} 优化, ->${列表[$默认]}<-" + 优化一常用命令一${默认} + done + else + 输出 2 "正在优化 ${(k)列表} 命令" + # 遍历关联数组 + for 键 值 in ${(kv)列表}; do + if 是否 "是否启动 '${键}' 命令优化 -> ${值} <- "; then + 优化一常用命令一${键} + else + 输出 3 "已取消 ${键} 的优化" + fi + done + fi } ############################################################################### @@ -292,6 +318,40 @@ echo "执行目录: ${目录一根}" [[ ${言灵一函数} == 1 ]] || . ${目录一根}/公共/函数.zsh || exit 2 && 输出 0 "公共函数模块初始化完成" [[ ${言灵一包管} == 1 ]] || . ${目录一根}/公共/包管.zsh || exit 3 && 输出 0 "包管理器模块初始化完成" +# 处理用户输入 +# 使用 case 语句检查命令行参数 +while [[ $# -gt 0 ]]; do + case "$1" in + -h | -帮助 | --help ) + echo "\n*-*-*-*-*-*-*-*-*-*-*-*-*-*\n"${帮助一信息} + exit 0 + ;; + -v | -版本 | --version ) + echo "版本号:${言灵一版本}" + exit 0 + ;; + -Y | -预设) + 输出 2 "启用预设模式" + 配置一预设=true + ;; + -J | -镜像) + # 判断镜像网站的连通性, 可以连通则使用 + if $(curl -IsS ${言灵一镜像站} | head -n 1 | grep -q "200"); then + 输出 2 "启动镜像下载" + 配置一预设=true + else + 输出 4 "无法访问镜像站, 使用默认的github" + fi + ;; + *) + 输出 4 "未知选项 -> $1 <- " + echo ${帮助一信息} + exit 0 + ;; + esac + shift +done + 配置检测 [[ ${#通用一包列表} -ne 0 ]] && 批量安装 ${通用一包列表[@]} && 输出 0 "通用包安装完毕"