#!/usr/bin/bash # wget -qO- https://gitea.whlug.cn/xunmi/getLinux/raw/start.sh | bash PACK_LIST=("git" "zsh") # 脚本根地址 ROOT_URL="https://gitea.whlug.cn/xunmi/x/" # 插件和依赖安装的路径 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() { if (($1 == 0)); then echo -e "${aCOLOUR[2]}[$COLOUR_RESET${aCOLOUR[0]} 成功 $COLOUR_RESET${aCOLOUR[2]}]$COLOUR_RESET $2" elif (($1 == 1)); then echo -e "${aCOLOUR[2]}[$COLOUR_RESET${aCOLOUR[3]} 失败 $COLOUR_RESET${aCOLOUR[2]}]$COLOUR_RESET $2" exit 1 elif (($1 == 2)); then echo -e "${aCOLOUR[2]}[$COLOUR_RESET${aCOLOUR[4]} 信息 $COLOUR_RESET${aCOLOUR[2]}]$COLOUR_RESET $2" 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" } ############################################################################### # 函数 # ############################################################################### # 更新包管理器 Update_Package_Resource() { Show 2 "更新包管理器..." GreyStart if [ -x "$(command -v oma)" ]; then sudo oma refresh elif [ -x "$(command -v apt)" ]; then sudo apt-get update -qq elif [ -x "$(command -v yum)" ]; then sudo yum update fi ColorReset Show 0 "包管理器更新完毕" } # 安装依赖 Install_PKG() { 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 oma)" ]; then sudo oma install -y $pack elif [ -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 pacman -Sy --needed $pack else Show 1 "未找到包管理器, 您需要手动安装: ${aCOLOUR[5]} $pack $COLOUR_RESET" fi ColorReset done Show 0 "依赖安装完成" } # 下载配置 Download_Config() { # 创建下载文件的临时目录 Show 0 "正在进行插件下载与配置" # 下载zsh扩展 GreyStart ohmyzsh_dir=${ROOT_INSTALL}/oh-my-zsh sudo rm -vrf $ohmyzsh_dir sudo git clone https://gitcode.com/mirrors/ohmyzsh/ohmyzsh.git ${ohmyzsh_dir} || Show 1 "关键依赖下载失败" 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} )" sudo 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 cd $HOME ColorReset Show 2 "寻觅基础环境安装完成" } Download_X(){ Show 0 "开始下载配置言灵" GreyStart x_dir=$ROOT_INSTALL/x sudo rm -vrf $x_dir sudo git clone $ROOT_URL $x_dir || Show 1 "言灵拉去失败" ColorReset X_START=1 } ################################################################# # 主函数(main) # ################################################################# ([ -x "$(command -v git)" ] && [ -x "$(command -v zsh)" ]) || Install_PKG # 如果携带 -c 则不下载安装ohmyzsh ([ -x "$(command -v zsh)" ] || [[ "$@" == *-c* ]]) || Download_Config # 如果携带 -x 则不下载安装言灵 [[ "$@" == *-x* ]] || Download_X sudo chown -R $USER:$USER $x_dir # 写入配置文件 mkdir -p $HOME/.config/xunmi echo "寻觅=${ROOT_INSTALL}" > $HOME/.config/xunmi/PATH.sh if [ -f "安装.zsh" ]; then zsh 安装.zsh else (( $X_START == 1 )) && zsh $x_dir/安装.zsh fi exec zsh