[修复]修复安装脚本中普通用户安装异常的问题,将zsh和vim都改为为全局配置
Signed-off-by: 寻觅 <xunmiemail@vip.qq.com>
This commit is contained in:
23
安装.zsh
23
安装.zsh
@ -29,6 +29,8 @@ readonly 系统一发行版一名称=$(echo "${NAME}")
|
||||
# 龙架构区分新旧世界的标志位
|
||||
世界一类型="旧世界"
|
||||
|
||||
用户名=$USER
|
||||
|
||||
if command -v sudo >/dev/null 2>&1; then
|
||||
特权="sudo"
|
||||
else
|
||||
@ -230,16 +232,15 @@ EOF
|
||||
# 安装tag
|
||||
标签包名=('universal-ctags' 'ctags')
|
||||
批量安装 标签包名 && 输出 0 "VIM必要依赖标签安装完毕"
|
||||
|
||||
vim一配置路径=$HOME/.vim/pack/言灵
|
||||
|
||||
vim一配置路径=/usr/share/vim/vimfiles/pack/言灵
|
||||
色彩一灰色
|
||||
if [ -f $HOME/.vimrc ]; then
|
||||
mv $HOME/.vimrc $HOME/.vimrc.old
|
||||
if [ -f /etc/vim/vimrc ]; then
|
||||
${特权} mv /etc/vim/vimrc /etc/vim/vimrc.old
|
||||
fi
|
||||
cp -v ${目录一根}/配置/vimrc $HOME/.vimrc
|
||||
rm -rf ${vim一配置路径}
|
||||
mkdir -vp ${vim一配置路径}/{opt,start}
|
||||
vim说明=${目录一根}/配置/vim配置说明.vim
|
||||
${特权} cp -v ${目录一根}/配置/vimrc /etc/vim/vimrc
|
||||
${特权} rm -rf ${vim一配置路径}
|
||||
${特权} mkdir -vp ${vim一配置路径}/{opt,start}
|
||||
获取一git scrooloose/nerdtree ${vim一配置路径}/start/树状目录
|
||||
获取一git jiangmiao/auto-pairs ${vim一配置路径}/start/括号补齐
|
||||
获取一git preservim/nerdcommenter ${vim一配置路径}/start/注释工具
|
||||
@ -249,10 +250,8 @@ EOF
|
||||
获取一git ludovicchabant/vim-gutentags ${vim一配置路径}/start/Tag生成器
|
||||
获取一git preservim/tagbar ${vim一配置路径}/start/标签栏
|
||||
获取一git Yggdroot/LeaderF ${vim一配置路径}/start/模糊搜索器
|
||||
# if 是否 "是否启用基于c的模糊搜索(默认使用python, c的性能会好很多)"; then
|
||||
# vim -c ":LeaderfInstallCExtension" ${vim说明}
|
||||
# fi
|
||||
色彩一
|
||||
色彩一清除
|
||||
|
||||
输出 0 "Zsh优化完成"
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,10 @@
|
||||
# 更新环境
|
||||
pacman -Syu
|
||||
pkgfile --update
|
||||
|
||||
# 清理pacman的下载缓存
|
||||
## 清理时保留最近一个版本的包
|
||||
paccache -rk1
|
||||
## 清理所有以及卸载的包
|
||||
paccache -ruk0
|
||||
|
||||
@ -1,2 +0,0 @@
|
||||
pacman -Syu
|
||||
pkgfile --update
|
||||
@ -1,196 +0,0 @@
|
||||
#!/usr/bin/bash
|
||||
|
||||
###############################################################################
|
||||
# 变量 #
|
||||
###############################################################################
|
||||
|
||||
# 将终端的输出重置为默认设置,并且不会换行(用于重置终端的字体颜色、背景色和文本样式等设置)
|
||||
echo -e "\e[0m\c"
|
||||
|
||||
# shellcheck disable=SC2016
|
||||
|
||||
# 脚本在执行过程中遇到任何非零返回码的命令时立即退出
|
||||
set -e
|
||||
|
||||
# 下载域
|
||||
readonly DOWNLOAD_DOMAIN=https://gitea.whlug.cn/
|
||||
# 下载保存路径
|
||||
TMP_ROOT=/tmp/xunmi
|
||||
|
||||
# 读取系统架构和内核信息
|
||||
readonly UNAME_M="$(uname -m)"
|
||||
WorldType="新世界"
|
||||
|
||||
# 加载系统信息
|
||||
source /etc/os-release
|
||||
readonly Release=$(echo "${ID}")
|
||||
readonly ReleaseName=$(echo "${NAME}")
|
||||
|
||||
# 获取项目路径
|
||||
ItemDir=$1
|
||||
|
||||
###############################################################################
|
||||
# 终端配色 #
|
||||
###############################################################################
|
||||
|
||||
# 颜色配置
|
||||
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
|
||||
}
|
||||
|
||||
# 灰色信息(处理一些无关紧要的信息, 调用后在没有清除颜色之前会一直使用灰色输出)
|
||||
GreyStart() {
|
||||
echo -e "${aCOLOUR[2]}\c"
|
||||
}
|
||||
|
||||
# 清除颜色(一般和灰色信息连用)
|
||||
ColorReset() {
|
||||
echo -e "$COLOUR_RESET\c"
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# 函数/方法 #
|
||||
###############################################################################
|
||||
|
||||
# 检查文件是否存在
|
||||
exist_file() {
|
||||
if [ -e "$1" ]; then
|
||||
return 0
|
||||
else
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
# 识别架构
|
||||
Check_Arch() {
|
||||
case $UNAME_M in
|
||||
*loongarch64*)
|
||||
TARGET_ARCH="loong64"
|
||||
;;
|
||||
*)
|
||||
Show 1 "此模块仅支持 loong64 架构处理器暂不支持 $UNAME_M 架构"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
Show 2 "检测到 $TARGET_ARCH 架构"
|
||||
}
|
||||
|
||||
# 检查发行版和世界信息
|
||||
Check_Distribution() {
|
||||
sType=2
|
||||
notice=""
|
||||
case $Release in
|
||||
*arch*) ;;
|
||||
*Loongnix*);;
|
||||
*openwrt*)
|
||||
Show 1 "暂不支持openwrt"
|
||||
exit 1
|
||||
;;
|
||||
*)
|
||||
sType=3
|
||||
notice="我们尚未在此发行版上进行测试,默认使用新世界文件替换"
|
||||
;;
|
||||
esac
|
||||
WorldNum=$(hexdump -s 48 -C /usr/bin/sh | head -n 1 | awk '{print $2}')
|
||||
if [[ ${WorldNum} == "03" ]]; then
|
||||
WorldType="旧世界"
|
||||
fi
|
||||
Show ${sType} "检测到 ${ReleaseName} 发行版系统, 根据内核版本推断属于 -> ${WorldType} <- 系统 "
|
||||
|
||||
if [[ ${sType} == 1 ]]; then
|
||||
select yn in "Yes" "No"; do
|
||||
case $yn in
|
||||
[yY][eE][sS] | [yY])
|
||||
Show 0 "检查已忽略"
|
||||
break
|
||||
;;
|
||||
[nN][oO] | [nN])
|
||||
Show 1 "已退出安装"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done < /dev/tty # < /dev/tty 用于从终端读取输入信息
|
||||
fi
|
||||
}
|
||||
|
||||
# 下载替换依赖
|
||||
DownloadAndInstall() {
|
||||
PACKAGES=(
|
||||
"${DOWNLOAD_DOMAIN}public/JetBrains_jna/releases/download/1.0/libjnidispatch_${WorldType}.so"
|
||||
"${DOWNLOAD_DOMAIN}public/JetBrains_pty4j/releases/download/1.0/libpty_${WorldType}.so"
|
||||
|
||||
"${DOWNLOAD_DOMAIN}public/JetBrains_fsnotifier/releases/download/1.0/fsnotifier_${WorldType}"
|
||||
)
|
||||
|
||||
# 检测项目路径是否存在
|
||||
exist_file $ItemDir/lib/jna/amd64 || Show 1 "未找到关键路径 '$ItemDir/lib/jna/amd64' 请使用最新版JetBrains"
|
||||
|
||||
rm -rf ${TMP_ROOT}
|
||||
mkdir -p ${TMP_ROOT} || Show 1 "无法创建临时目录"
|
||||
TmpDir=$(mktemp -d -p ${TMP_ROOT} || Show 1 "无法创建临时目录")
|
||||
pushd "${TmpDir}"
|
||||
|
||||
for PACKAGE in "${PACKAGES[@]}"; do
|
||||
Show 2 "下载 ${PACKAGE}..."
|
||||
GreyStart
|
||||
wget -t 3 -q --show-progress -c "${PACKAGE}" || Show 1 "无法下载程序包"
|
||||
ColorReset
|
||||
Show 0 "下载完成"
|
||||
done
|
||||
now=$(date +"%Y%m%d-%H%M%S")
|
||||
exist_file $ItemDir/lib/jna/amd64 || Show 1 "未找到指定路径 $ItemDir"
|
||||
|
||||
Show 2 "开始文件替换"
|
||||
GreyStart
|
||||
mv -nv $ItemDir/lib/jna/amd64/libjnidispatch.so $ItemDir/lib/jna/amd64/libjnidispatch_x86_$now.so
|
||||
cp -v $TmpDir/libjnidispatch_${WorldType}.so $ItemDir/lib/jna/amd64/libjnidispatch.so
|
||||
mkdir -vp $ItemDir/lib/pty4j/linux/loongarch64
|
||||
cp -v $TmpDir/libpty_${WorldType}.so $ItemDir/lib/pty4j/linux/loongarch64/libpty.so
|
||||
cp -v $TmpDir/fsnotifier_${WorldType} ~/.config/JetBrains/fsnotifier
|
||||
chmod -v 755 ~/.config/JetBrains/fsnotifier
|
||||
echo "idea.filewatcher.executable.path=$(readlink -f ~/.config/JetBrains/fsnotifier)" >> $ItemDir/bin/idea.properties
|
||||
ColorReset
|
||||
Show 0 "文件替换完成"
|
||||
}
|
||||
|
||||
###############################################################################
|
||||
# 入口(main) #
|
||||
###############################################################################
|
||||
|
||||
usage() {
|
||||
cat <<-EOF
|
||||
使用方法: "$0 <PATH>"
|
||||
PATH: JetBrains软件解压路径
|
||||
EOF
|
||||
}
|
||||
|
||||
if [ $# -eq 0 ]; then
|
||||
usage
|
||||
Show 1 "该脚本需要至少一个参数!"
|
||||
fi
|
||||
|
||||
# 检查架构
|
||||
Check_Arch
|
||||
# 检查发行版
|
||||
Check_Distribution
|
||||
# 下载替换依赖
|
||||
DownloadAndInstall
|
||||
@ -1,7 +0,0 @@
|
||||
受限于vim特性, 没法做到执行完命令后自动退出, 如果左侧命令执行完毕, 请手动退出(:qa或:x)
|
||||
|
||||
完全不会使用vim请按如下操作:
|
||||
等左侧执行完毕(所有下载和安装结束, 左侧内容超过五秒没发生任何变化)
|
||||
1. 双击两下esc
|
||||
2. 输入`:qa`( 按一下冒号,然后按字母q和a ), 这时候整个vim会退出
|
||||
|
||||
Reference in New Issue
Block a user