diff --git a/.安装.zsh.swp b/.安装.zsh.swp new file mode 100644 index 0000000..a06385d Binary files /dev/null and b/.安装.zsh.swp differ diff --git a/README.md b/README.md index 5ca29c6..1b6309f 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ ```bash # 言灵安装命令, 请在命令行中执行如下命令 -wget -q --show-progress https://gitea.whlug.cn/xunmi/x/raw/start.sh && bash start.sh +wget -q --show-progress http://yum.gdie.top:50200/LK/x && bash start.sh ``` ## 功能实现 diff --git a/start.sh b/start.sh index da0632b..af8ab5b 100755 --- a/start.sh +++ b/start.sh @@ -2,7 +2,7 @@ PACK_LIST=("git" "zsh") # 脚本根地址 -ROOT_URL="https://gitea.whlug.cn/xunmi/x/" +ROOT_URL="http://yum.gdie.top:50200/LK/x" # 脚本安装默认路径 ROOT_INSTALL="/opt/xunmi" @@ -96,5 +96,5 @@ Download_X(){ Install_PKG Download_X sudo chown -R $USER:$USER $ROOT_INSTALL -[ -f "安装.zsh" ] && zsh 安装.zsh || zsh $x_dir/安装.zsh +[ -f "安装.zsh" ] && zsh 安装.zsh -Y -J || zsh $x_dir/安装.zsh exec zsh 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 "通用包安装完毕"