chore: 移除内置脚本自更新流程
- 删除自更新菜单、版本比较及脚本替换逻辑 - 连续重排剩余主菜单的编号 - 将项目资源下载源重命名为 PROJECT_RAW_URL - 同步更新文档以反映精简后的功能
This commit is contained in:
+10
-94
@@ -13,9 +13,9 @@ hui='\e[37m'
|
||||
GITHUB_RAW_URL="${GITHUB_RAW_URL:-https://raw.githubusercontent.com}"
|
||||
GITHUB_RAW_URL="${GITHUB_RAW_URL%/}"
|
||||
|
||||
# 本脚本自身的更新源
|
||||
UPDATE_RAW_URL="${UPDATE_RAW_URL:-https://gitea.tohub.top/Share/kejilion/raw/branch/main}"
|
||||
UPDATE_RAW_URL="${UPDATE_RAW_URL%/}"
|
||||
# 本项目附属资源的下载源
|
||||
PROJECT_RAW_URL="${PROJECT_RAW_URL:-https://gitea.tohub.top/Share/kejilion/raw/branch/main}"
|
||||
PROJECT_RAW_URL="${PROJECT_RAW_URL%/}"
|
||||
|
||||
XANMOD_SOURCE_FILE=/etc/apt/sources.list.d/kejilion-xanmod.list
|
||||
|
||||
@@ -215,24 +215,6 @@ update_limit_cron() {
|
||||
return 1
|
||||
}
|
||||
|
||||
# 版本号比较:$1 严格大于 $2 时返回 0,用于避免自更新把脚本降级
|
||||
version_gt() {
|
||||
[ "$1" = "$2" ] && return 1
|
||||
local IFS=. i x y
|
||||
local a=($1) b=($2)
|
||||
for ((i = 0; i < ${#a[@]} || i < ${#b[@]}; i++)); do
|
||||
x=${a[i]:-0}; y=${b[i]:-0}
|
||||
x=${x//[!0-9]/}; y=${y//[!0-9]/}
|
||||
x=${x:-0}; y=${y:-0}
|
||||
[ "$x" -gt "$y" ] && return 0
|
||||
[ "$x" -lt "$y" ] && return 1
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
ip_address() {
|
||||
ipv4_address=$(curl -s ipv4.ip.sb)
|
||||
ipv6_address=$(curl -s --max-time 1 ipv6.ip.sb)
|
||||
@@ -868,11 +850,9 @@ echo "------------------------"
|
||||
echo "1. 系统信息查询"
|
||||
echo "2. 系统更新"
|
||||
echo "3. 系统清理"
|
||||
echo "5. BBR管理 ▶"
|
||||
echo "8. 测试脚本合集 ▶ "
|
||||
echo "13. 系统工具 ▶ "
|
||||
echo "------------------------"
|
||||
echo "00. 脚本更新"
|
||||
echo "4. BBR管理 ▶"
|
||||
echo "5. 测试脚本合集 ▶ "
|
||||
echo "6. 系统工具 ▶ "
|
||||
echo "------------------------"
|
||||
echo "0. 退出脚本"
|
||||
echo "------------------------"
|
||||
@@ -1000,7 +980,7 @@ case $choice in
|
||||
linux_clean
|
||||
;;
|
||||
|
||||
5)
|
||||
4)
|
||||
clear
|
||||
tcpx_dir=$(mktemp -d) || {
|
||||
err_msg "无法创建临时目录。"
|
||||
@@ -1014,7 +994,7 @@ case $choice in
|
||||
rm -rf "$tcpx_dir"
|
||||
;;
|
||||
|
||||
8)
|
||||
5)
|
||||
while true; do
|
||||
clear
|
||||
echo "▶ 测试脚本合集"
|
||||
@@ -1158,7 +1138,7 @@ case $choice in
|
||||
done
|
||||
;;
|
||||
|
||||
13)
|
||||
6)
|
||||
while true; do
|
||||
clear
|
||||
echo "▶ 系统工具"
|
||||
@@ -2232,7 +2212,7 @@ case $choice in
|
||||
fi
|
||||
limit_script_existed=1
|
||||
fi
|
||||
if download_file "${UPDATE_RAW_URL}/Limiting_Shut_down.sh" "$tmp_limit_script" &&
|
||||
if download_file "${PROJECT_RAW_URL}/Limiting_Shut_down.sh" "$tmp_limit_script" &&
|
||||
sed -i "s/^threshold_gb=.*/threshold_gb=${threshold_gb}/" "$tmp_limit_script" &&
|
||||
grep -q "^threshold_gb=${threshold_gb}$" "$tmp_limit_script" &&
|
||||
bash -n "$tmp_limit_script" &&
|
||||
@@ -2294,70 +2274,6 @@ case $choice in
|
||||
done
|
||||
;;
|
||||
|
||||
00)
|
||||
clear
|
||||
echo "更新日志"
|
||||
echo "------------------------"
|
||||
changelog=$(curl -fsSL --max-time 20 "${UPDATE_RAW_URL}/kejilion_sh_log.txt")
|
||||
if [ -n "$changelog" ]; then
|
||||
echo "全部日志: ${UPDATE_RAW_URL}/kejilion_sh_log.txt"
|
||||
echo "------------------------"
|
||||
echo "$changelog" | tail -n 35
|
||||
else
|
||||
echo "(当前更新源未提供更新日志)"
|
||||
fi
|
||||
echo "------------------------"
|
||||
|
||||
sh_v_new=$(curl -fsSL --max-time 20 "${UPDATE_RAW_URL}/kejilion.sh" | grep -o 'sh_v="[0-9.]*"' | head -n 1 | cut -d '"' -f 2)
|
||||
|
||||
if [ -z "$sh_v_new" ]; then
|
||||
err_msg "无法获取远程版本信息,请检查网络或更新源: ${UPDATE_RAW_URL}"
|
||||
elif [ "$sh_v" = "$sh_v_new" ]; then
|
||||
echo -e "${lv}你已经是最新版本!${huang}v$sh_v${bai}"
|
||||
elif ! version_gt "$sh_v_new" "$sh_v"; then
|
||||
echo -e "${lv}本地版本 ${huang}v$sh_v${lv} 高于更新源版本 ${huang}v$sh_v_new${lv},已跳过更新。${bai}"
|
||||
else
|
||||
echo "发现新版本!"
|
||||
echo -e "当前版本 v$sh_v 最新版本 ${huang}v$sh_v_new${bai}"
|
||||
echo "------------------------"
|
||||
read -p "确定更新脚本吗?(Y/N): " choice
|
||||
case "$choice" in
|
||||
[Yy])
|
||||
clear
|
||||
# 在脚本所在目录下载并原子替换,避免更新失败时截断当前脚本
|
||||
script_dir=$(dirname "$SCRIPT_PATH")
|
||||
tmp_sh=$(mktemp "${script_dir}/.kejilion.sh.XXXXXX") || {
|
||||
err_msg "创建更新临时文件失败。"
|
||||
echo "按任意键继续..."
|
||||
read -n 1 -s -r -p ""
|
||||
continue
|
||||
}
|
||||
if download_file "${UPDATE_RAW_URL}/kejilion.sh" "$tmp_sh" &&
|
||||
bash -n "$tmp_sh" &&
|
||||
downloaded_version=$(grep -m1 -oE '^sh_v="[0-9]+([.][0-9]+)*"$' "$tmp_sh" | cut -d '"' -f 2) &&
|
||||
[ "$downloaded_version" = "$sh_v_new" ] &&
|
||||
version_gt "$downloaded_version" "$sh_v" &&
|
||||
chmod +x "$tmp_sh" &&
|
||||
mv -f "$tmp_sh" "$SCRIPT_PATH"; then
|
||||
cp "$SCRIPT_PATH" /usr/local/bin/k > /dev/null 2>&1
|
||||
echo -e "${lv}脚本已更新到最新版本!${huang}v$sh_v_new${bai}"
|
||||
break_end
|
||||
exec bash "$SCRIPT_PATH"
|
||||
else
|
||||
rm -f "$tmp_sh"
|
||||
err_msg "更新失败,已保留当前版本。"
|
||||
fi
|
||||
;;
|
||||
[Nn])
|
||||
echo "已取消"
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
;;
|
||||
|
||||
0)
|
||||
clear
|
||||
exit
|
||||
|
||||
Reference in New Issue
Block a user