[新增] 添加模块和vim优化模块, 优化主模块代码

This commit is contained in:
寻觅(樊旭东) 2024-02-05 17:46:26 +08:00
parent 45a381a757
commit fd4c677c6a
3 changed files with 113 additions and 30 deletions

View File

@ -7,8 +7,8 @@
# 使用方法: 在言灵根目录下使用`. 公共/函数.zsh`
# 标识符
言_公共函数=1
# 启动言灵公共函数模块的标识符
_函数=1
###############################################################################
# 终端配色 #

45
公共/包管.zsh Normal file
View File

@ -0,0 +1,45 @@
#!/usr/bin/zsh
# 路径名称: 公共/包管.zsh
# 脚本作用: 统一不同发行版中预制的不同的包管理的功能
# 当前支持的包管理器有: apt yum pacman
# 可实现的功能有 `包管_更新` `包管_安装` `包管_搜索`
# 第一作者: 寻觅(xunmiemail@vip.qq.com)
# 创建时间: 2024年2月5日11:25:00
# 使用方法: 在言灵根目录下使用`. 公共/包管.zsh`
# 启动言灵包管理模块的标识符
言灵_包管=1
# 调用当前包管理器检查和更新
# 参数 [ -n --no-update -不更 ] 携带此参数为仅检查更新
# 参数 [ -y -确认 ] 跳过包管理器更新时的二次确认
# 实例 `包管_更新 -n`; `包管_更新 -确认`
包管_更新() {
if [ -x "$(command -v apt)" ]; then
sudo apt-get update -qq
elif [ -x "$(command -v yum)" ]; then
sudo yum update
elif [ -x "$(command -v pacman)"]; then
sudo pacman -Syu
fi
}
# 调用当前包管理器的安装模块
包管_安装(){
if [ -x "$(command -v apt)" ]; then
sudo apt -y install $1
elif [ -x "$(command -v yum)" ]; then
sudo yum install -y $1
elif [ -x "$(command -v pacman)" ]; then
sudo pacman -Sy --needed $1
else
return 1
fi
}
# 默认会尝试使用 apt-file pkgfile 等第三方搜索工具, 未找到第三方搜索工具时尝试使用包管理器自带搜索模块
# 参数 [ -n --no-file -原版 ]
包管_搜索() {
}

View File

@ -6,7 +6,8 @@ export DEBIAN_FRONTEND=noninteractive
# 加载系统配置
source /etc/os-release
# 加载公共函数
. ./公共/函数.zsh
. 公共/函数.zsh
. 公共/包管.zsh
# 脚本在执行过程中遇到任何非零返回码的命令时立即退出
set -e
@ -15,8 +16,9 @@ set -e
# 全局变量 #
###############################################################################
readonly 安装_通用_包=('wget' 'curl' 'git' 'vim')
typeset -a 通用_包列表=('wget' 'curl' 'git' 'vim' 'sudo')
typeset -a 架构_包列表=()
typeset -a 系统_包列表=()
readonly CPU_架构="$(uname -m)"
readonly 系统_类型="$(uname -s)"
readonly 系统_版本="$(uname -r)"
@ -30,20 +32,33 @@ readonly 系统_发行版_名称=$(echo "${NAME}")
###############################################################################
# 函数/方法 #
###############################################################################
# 调用包管理器批量安装
批量安装(){
typeset -a 包列表=($@)
输出 2 "计划安装列表: ${包列表}"
for 包 in "${包列表[@]}";do
输出 2 "正在安装 -> ${} <-"
色彩_灰色
包管_安装 ${}
色彩_清除
done
}
检查_架构() {
case ${CPU_架构} in
*x86_64*)
主机_架构="amd64"
;;
*loong*)
主机_架构="龙"
;;
*)
主机_架构="龙"
;;
*)
输出 1 "暂不支持${色彩[3]} ${CPU_架构} ${色彩重置}架构"
exit 1
;;
esac
输出 2 "检测到${色彩[1]} ${主机_架构} ${色彩重置}架构"
esac
输出 2 "检测到${色彩[1]} ${主机_架构} ${色彩重置}架构"
}
检查_发行版() {
@ -68,43 +83,66 @@ readonly 系统_发行版_名称=$(echo "${NAME}")
fi
}
输出_主机配置(){
echo "
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
* 欢迎使用 言灵 配置脚本 *
* 一个可以让你在命令行中使用 *
* 中文的工具 *
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
"
配置检测(){
输出 2 "主机信息检测模块启动"
检查_架构
检查_发行版
输出 0 "主机信息检测完毕"
}
配置_包管理器(){
输出 2 "正在配置包管理器"
优化_常用命令_vim(){
输出 2 "启动vim优化"
vim_配置路径=$HOME/.vim/pack/xunmi
typeset -a vim_包列表=('vim-airline')
批量安装 ${vim_包列表[@]} && 输出 0 "vim依赖包安装完毕"
色彩_灰色
mkdir -vp ${vim_配置路径}/{opt,start}
# 树状目录
git clone --depth 1 https://gitcode.com/mirrors/scrooloose/nerdtree.git ${vim_配置路径}/start
# 代码检查工具
git clone --depth 1 https://gitcode.com/mirrors/dense-analysis/ale.git ${vim_配置路径}/start
cp -v 配置/vimrc $HOME/.vimrc
色彩_清除
}
优化_常用命令(){
readonly 列表=(
["vim"]="添加常用配置项(允许复制 添加行号 显式当前行等), 常用插件(目录 语法检测),"
["ls"]="使用lsd替代老旧的ls, 需要rust的cargo"
["top"]="使用btop替代老旧的top"
["cat"]="使用lsd替代老旧的ls, 需要rust的cargo"
["sed"]="使用学习成本较低的sd替代sed"
typeset -A 列表=(
["vim"]="添加常用配置项(允许复制 添加行号 显式当前行等), 常用插件(目录 语法检测)"
["ls"]="使用lsd替代老旧的ls, 需要rust的cargo"
["top"]="使用btop替代老旧的top"
["cat"]="使用bat替代cat"
["sed"]="使用学习成本较低的sd替代sed"
)
输出 2 "正在优化 ${(k)列表} 命令"
# 遍历关联数组
for 键 值 in ${(kv)列表}; do
if 是否 "是否启动 '${}' 命令优化 -> ${} <- "; then
优化_常用命令_${}
else
输出 3 "已取消 ${} 的优化"
fi
done
}
###############################################################################
# 入口(main) #
###############################################################################
输出_主机配置
配置_包管理器
echo "
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
* 欢迎使用 言灵 配置脚本 *
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
"
(( ${言灵_函数} == 1 )) && 输出 0 "公共函数模块初始化完成" || exit 1
(( ${言灵_包管} == 1 )) && 输出 0 "包管理器模块初始化完成" || exit 2
# 优化_常用命令
配置检测
[[ ${#通用_包列表} -ne 0 ]] && 批量安装 ${通用_包列表[@]} && 输出 0 "通用包安装完毕"
[[ ${#架构_包列表} -ne 0 ]] && 批量安装 ${架构_包列表[@]} && 输出 0 "架构专用包安装完毕"
[[ ${#系统_包列表} -ne 0 ]] && 批量安装 ${系统_包列表[@]} && 输出 0 "系统发行版专用包安装完毕"
优化_常用命令
# 配置_开发环境