[新增] 添加命令行帮助信息以及预设安装模式与可选镜像源安装
This commit is contained in:
parent
c8ac7b472c
commit
6a54ac5a96
BIN
.安装.zsh.swp
Normal file
BIN
.安装.zsh.swp
Normal file
Binary file not shown.
|
@ -1,9 +1,9 @@
|
||||||
#!/usr/bin/zsh
|
#!/usr/bin/zsh
|
||||||
|
|
||||||
#####################################
|
#####################################
|
||||||
# 自动配置常用开发环境 #
|
# 自动配置常用开发环境 #
|
||||||
# [x] go #
|
# [x] go #
|
||||||
# [ ] rust #
|
# [x] rust #
|
||||||
# [ ] java #
|
# [ ] java #
|
||||||
# [ ] nodejs #
|
# [ ] nodejs #
|
||||||
#####################################
|
#####################################
|
||||||
|
|
124
安装.zsh
124
安装.zsh
|
@ -9,15 +9,16 @@ source /etc/os-release
|
||||||
# 脚本在执行过程中遇到任何非零返回码的命令时立即退出
|
# 脚本在执行过程中遇到任何非零返回码的命令时立即退出
|
||||||
# set -e
|
# 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 架构一包列表=()
|
||||||
typeset -a 系统一包列表=()
|
typeset -a 系统一包列表=()
|
||||||
|
|
||||||
readonly CPU一架构="$(uname -m)"
|
readonly CPU一架构="$(uname -m)"
|
||||||
readonly 系统一类型="$(uname -s)"
|
readonly 系统一类型="$(uname -s)"
|
||||||
readonly 系统一版本="$(uname -r)"
|
readonly 系统一版本="$(uname -r)"
|
||||||
|
@ -34,6 +35,27 @@ else
|
||||||
特权=""
|
特权=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
typeset -a 预设一默认=("vim" "zsh")
|
||||||
|
readonly 言灵一镜像站="http://yum.gdie.top:50200/ylib/"
|
||||||
|
配置一预设=false
|
||||||
|
配置一镜像=false
|
||||||
|
# 帮助信息
|
||||||
|
帮助一信息=$(cat <<EOF
|
||||||
|
用法: $0 [选项]
|
||||||
|
|
||||||
|
选项:
|
||||||
|
-h, -帮助 显示帮助信息
|
||||||
|
-v, -版本 显示版本信息
|
||||||
|
-Y, -预设 使用预设配置安装 ${预设一默认}
|
||||||
|
-J, -镜像 使用镜像源安装 ${言灵一镜像站}
|
||||||
|
|
||||||
|
示例:
|
||||||
|
$0 -h 显示此帮助信息
|
||||||
|
$0 -Y -J 使用预设配置和镜像源安装
|
||||||
|
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# 函数/方法 #
|
# 函数/方法 #
|
||||||
###############################################################################
|
###############################################################################
|
||||||
|
@ -54,10 +76,18 @@ fi
|
||||||
# *-* -> 位置参数 1 <- 拉取`作者/仓库名`
|
# *-* -> 位置参数 1 <- 拉取`作者/仓库名`
|
||||||
# *-* -> 位置参数 2 <- 保存地址, 保存到本地的哪个路径
|
# *-* -> 位置参数 2 <- 保存地址, 保存到本地的哪个路径
|
||||||
获取一git(){
|
获取一git(){
|
||||||
git镜像="https://gitcode.com/mirrors"
|
|
||||||
色彩一灰色
|
色彩一灰色
|
||||||
输出 2 "正在拉取 $1 ..."
|
if [ -z "$2" ]; then
|
||||||
git clone --depth 1 -q ${git镜像}/$1.git $2
|
输出 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*)
|
*loong*)
|
||||||
主机一架构="龙"
|
主机一架构="龙"
|
||||||
# 6之前除了5.19以外的所有内核都是旧世界
|
|
||||||
#if [[ ${系统_版本} =~ ^[3,4,5].+ && !${系统_版本} =~ ^5.19.0-.+ ]]; then
|
|
||||||
# 世界_类型="旧世界"
|
|
||||||
#fi
|
|
||||||
# 使用更高级的方法判断新旧世界
|
|
||||||
# 龙架构二进制 第四行是43开头是新世界, 03开头是旧世界
|
# 龙架构二进制 第四行是43开头是新世界, 03开头是旧世界
|
||||||
世界一类型一标志位=$(hexdump -s 48 -C /usr/bin/sh | head -n 1 | awk '{print $2}')
|
世界一类型一标志位=$(hexdump -s 48 -C /usr/bin/sh | head -n 1 | awk '{print $2}')
|
||||||
if [[ ${世界一类型一标志位} == "43" ]];then
|
if [[ ${世界一类型一标志位} == "43" ]];then
|
||||||
|
@ -100,7 +125,6 @@ fi
|
||||||
*debian*)
|
*debian*)
|
||||||
if [[ ${系统一发行版一名称}=="Ubuntu" ]]; then
|
if [[ ${系统一发行版一名称}=="Ubuntu" ]]; then
|
||||||
系统一发行版一标识符="乌班图"
|
系统一发行版一标识符="乌班图"
|
||||||
系统一包列表=('universal-ctags')
|
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*openwrt*)
|
*openwrt*)
|
||||||
|
@ -174,6 +198,11 @@ fi
|
||||||
|
|
||||||
优化一常用命令一vim(){
|
优化一常用命令一vim(){
|
||||||
输出 2 "启动vim优化, 安装代码检查和树状目录插件, 并优化配置(具体配置可以查看 $HOME/.vimrc 文件)"
|
输出 2 "启动vim优化, 安装代码检查和树状目录插件, 并优化配置(具体配置可以查看 $HOME/.vimrc 文件)"
|
||||||
|
|
||||||
|
# 安装tag
|
||||||
|
typeset -a 标签包名=('universal-ctags' 'ctag')
|
||||||
|
批量安装 标签包名 && 输出 0 "通用包安装完毕"
|
||||||
|
|
||||||
vim一配置路径=$HOME/.vim/pack/xunmi
|
vim一配置路径=$HOME/.vim/pack/xunmi
|
||||||
色彩一灰色
|
色彩一灰色
|
||||||
if [ -f $HOME/.vimrc ]; then
|
if [ -f $HOME/.vimrc ]; then
|
||||||
|
@ -184,7 +213,6 @@ fi
|
||||||
mkdir -vp ${vim一配置路径}/{opt,start}
|
mkdir -vp ${vim一配置路径}/{opt,start}
|
||||||
vim说明=${目录一根}/配置/vim配置说明.vim
|
vim说明=${目录一根}/配置/vim配置说明.vim
|
||||||
获取一git scrooloose/nerdtree ${vim一配置路径}/start/树状目录
|
获取一git scrooloose/nerdtree ${vim一配置路径}/start/树状目录
|
||||||
获取一git dense-analysis/ale ${vim一配置路径}/start/代码检查工具
|
|
||||||
获取一git jiangmiao/auto-pairs ${vim一配置路径}/start/括号补齐
|
获取一git jiangmiao/auto-pairs ${vim一配置路径}/start/括号补齐
|
||||||
获取一git preservim/nerdcommenter ${vim一配置路径}/start/注释工具
|
获取一git preservim/nerdcommenter ${vim一配置路径}/start/注释工具
|
||||||
获取一git vim-airline/vim-airline ${vim一配置路径}/start/VIM状态栏
|
获取一git vim-airline/vim-airline ${vim一配置路径}/start/VIM状态栏
|
||||||
|
@ -195,17 +223,6 @@ fi
|
||||||
# if 是否 "是否启用基于c的模糊搜索(默认使用python, c的性能会好很多)"; then
|
# if 是否 "是否启用基于c的模糊搜索(默认使用python, c的性能会好很多)"; then
|
||||||
# vim -c ":LeaderfInstallCExtension" ${vim说明}
|
# vim -c ":LeaderfInstallCExtension" ${vim说明}
|
||||||
# fi
|
# 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优化完成"
|
输出 0 "Zsh优化完成"
|
||||||
}
|
}
|
||||||
|
@ -259,15 +276,24 @@ fi
|
||||||
["top"]="使用xmtop替代老旧的top系统信息监控功能"
|
["top"]="使用xmtop替代老旧的top系统信息监控功能"
|
||||||
#["sed"]="使用学习成本较低的sd替代sed"
|
#["sed"]="使用学习成本较低的sd替代sed"
|
||||||
)
|
)
|
||||||
输出 2 "正在优化 ${(k)列表} 命令"
|
# 查看预设是否被启动
|
||||||
# 遍历关联数组
|
if ${配置一预设}; then
|
||||||
for 键 值 in ${(kv)列表}; do
|
输出 2 "正在优化 ${预设一默认} 命令"
|
||||||
if 是否 "是否启动 '${键}' 命令优化 -> ${值} <- "; then
|
for 默认 in "${预设一默认[@]}";do
|
||||||
优化一常用命令一${键}
|
echo "正在启动 ${默认} 优化, ->${列表[$默认]}<-"
|
||||||
else
|
优化一常用命令一${默认}
|
||||||
输出 3 "已取消 ${键} 的优化"
|
done
|
||||||
fi
|
else
|
||||||
done
|
输出 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 2 && 输出 0 "公共函数模块初始化完成"
|
||||||
[[ ${言灵一包管} == 1 ]] || . ${目录一根}/公共/包管.zsh || exit 3 && 输出 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 "通用包安装完毕"
|
[[ ${#通用一包列表} -ne 0 ]] && 批量安装 ${通用一包列表[@]} && 输出 0 "通用包安装完毕"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user