x/start.sh

141 lines
3.8 KiB
Bash
Executable File

#!/usr/bin/bash
# https://gitea.whlug.cn/xunmi/getLinux/src/start.sh
PACK_LIST=("wget" "git" "zsh")
# 脚本根地址
ROOT_URL="https://gitea.whlug.cn/xunmi/getLinux/"
# 插件和依赖安装的路径
ROOT_INSTALL=/opt/xunmi
###############################################################################
# 终端配色 #
###############################################################################
readonly COLOUR_RESET='\e[0m'
readonly aCOLOUR=(
'\e[38;5;154m' # 0: 亮绿
'\e[1m' # 1: 白
'\e[90m' # 2: 灰
'\e[91m' # 3: 红
'\e[32m' # 4: 绿
'\e[33m' # 5: 黄
)
Show() {
# OK
if (($1 == 0)); then
echo -e "${aCOLOUR[2]}[$COLOUR_RESET${aCOLOUR[0]} 成功 $COLOUR_RESET${aCOLOUR[2]}]$COLOUR_RESET $2"
# FAILED
elif (($1 == 1)); then
echo -e "${aCOLOUR[2]}[$COLOUR_RESET${aCOLOUR[3]} 失败 $COLOUR_RESET${aCOLOUR[2]}]$COLOUR_RESET $2"
exit 1
# INFO
elif (($1 == 2)); then
echo -e "${aCOLOUR[2]}[$COLOUR_RESET${aCOLOUR[4]} 信息 $COLOUR_RESET${aCOLOUR[2]}]$COLOUR_RESET $2"
# NOTICE
elif (($1 == 3)); then
echo -e "${aCOLOUR[2]}[$COLOUR_RESET${aCOLOUR[5]} 警告 $COLOUR_RESET${aCOLOUR[2]}]$COLOUR_RESET $2"
fi
}
Warn() {
echo -e "${aCOLOUR[3]}$1$COLOUR_RESET"
}
GreyStart() {
echo -e "${aCOLOUR[2]}\c"
}
ColorReset() {
echo -e "$COLOUR_RESET\c"
}
###############################################################################
# 函数 #
###############################################################################
# 选择判断器
Select_Continue() {
Show 0 "$1((是/否 Yes/No))"
read r
if echo "$r" | grep -Eq "^[是Yy][Ee]?[Ss]?$";then
return 1
else
return 0
fi
}
# 更新包管理器
Update_Package_Resource() {
Show 2 "更新包管理器..."
GreyStart
if [ -x "$(command -v apt)" ]; then
sudo apt-get update -qq
elif [ -x "$(command -v yum)" ]; then
sudo yum update
fi
ColorReset
Show 0 "包管理器更新完毕"
}
# 安装Zsh
Install_Zsh() {
Update_Package_Resource
for ((i = 0; i < ${#PACK_LIST[@]}; i++)); do
pack=${PACK_LIST[i]}
Show 2 "安装必要的依赖项: ${aCOLOUR[4]} $pack $COLOUR_RESET"
GreyStart
if [ -x "$(command -v apt)" ]; then
sudo apt -y install $pack
elif [ -x "$(command -v yum)" ]; then
sudo yum install -y $pack
elif [ -x "$(command -v pacman)" ]; then
sudo -Sy --needed $pack
#elif [ -x "$(command -v paru)" ]; then
# paru -S zsh
else
Show 1 "未找到包管理器, 您需要手动安装: ${aCOLOUR[5]} $pack $COLOUR_RESET"
fi
ColorReset
done
Show 0 "依赖安装完成"
}
# 下载配置
Download_Config() {
# 创建下载文件的临时目录
GreyStart
Show 0 "正在进行插件下载与配置"
# 下载zsh扩展
ohmyzsh_dir=${ROOT_INSTALL}/oh-my-zsh
sudo git clone https://gitcode.com/mirrors/ohmyzsh/ohmyzsh.git ${ohmyzsh_dir}
cd ${ohmyzsh_dir}/custom/plugins/
sudo git clone https://gitcode.com/mirrors/zsh-users/zsh-autosuggestions.git
sudo git clone https://gitcode.com/mirrors/zsh-users/zsh-syntax-highlighting.git
# 下载预设配置
config_url=${ROOT_URL}/raw/配置/zshrc
sudo wget -t 3 -q --show-progress -c "${config_url}" || Show 1 "无法下载预设配置(${config_url})"
sed -i "s/export ZSH=\/etc\/oh-my-zsh/export ZSH=$ohmyzsh_dir/" zshrc
sudo mv zshrc /etc/skel/.zshrc
cp -v /etc/skel/.zshrc $HOME
ColorReset
Show 2 "寻觅基础环境安装完成"
}
# 选配
Select_Config(){
if Select_Continue "启动zsh"; then
zsh
Show 2 "zsh启动完成"
fi
if Select_Continue "将Zsh设置为默认命令行"; then
sudo chsh -s /usr/bin/zsh
Show 2 "已将zsh设置为默认命令行"
fi
}
Install_Zsh
Download_Config
Select_Config