This commit is contained in:
Super Manito
2025-03-20 23:11:18 +08:00
parent a2f2527917
commit bbff27d128
2 changed files with 56 additions and 56 deletions

View File

@@ -244,7 +244,7 @@ WARN="\033[1;43m 警告 ${PLAIN}"
ERROR="\033[1;31m✘${PLAIN}" ERROR="\033[1;31m✘${PLAIN}"
FAIL="\033[1;31m✘${PLAIN}" FAIL="\033[1;31m✘${PLAIN}"
TIP="\033[1;44m 提示 ${PLAIN}" TIP="\033[1;44m 提示 ${PLAIN}"
WORKING="\033[1;36m>_${PLAIN}" WORKING="\033[1;36m${PLAIN}"
function main() { function main() {
permission_judgment permission_judgment
@@ -618,7 +618,7 @@ function run_start() {
} }
function run_end() { function run_end() {
echo -e "\n✨ \033[1;34mPowered by https://linuxmirrors.cn\033[0m\n" echo -e "\n✨ \033[3;1mPowered by \033[34mhttps://linuxmirrors.cn\033[0m\n"
} }
## 报错退出 ## 报错退出
@@ -1619,7 +1619,7 @@ function change_mirrors_main() {
print_diff print_diff
fi fi
## 更新软件源 ## 更新软件源
echo -e "\n$WORKING 开始${SYNC_MIRROR_TEXT}...\n" echo -e "\n$WORKING ${SYNC_MIRROR_TEXT}...\n"
case "${SYSTEM_FACTIONS}" in case "${SYSTEM_FACTIONS}" in
"${SYSTEM_DEBIAN}" | "${SYSTEM_OPENKYLIN}") "${SYSTEM_DEBIAN}" | "${SYSTEM_OPENKYLIN}")
apt-get update apt-get update
@@ -2546,25 +2546,25 @@ function interactive_select_mirror() {
unset options[${#options[@]}-1] unset options[${#options[@]}-1]
local selected=0 local selected=0
local start=0 local start=0
local page_size=$(($(tput lines) - 3)) # 减去1行用于显示提示信息 local page_size=$(($(tput lines 2>/dev/null) - 3)) # 减去3行用于显示提示信息
function clear_menu() { function clear_menu() {
tput rc tput rc 2>/dev/null
for ((i = 0; i < ${#options[@]} + 1; i++)); do for ((i = 0; i < ${#options[@]} + 1; i++)); do
echo -e "\r\033[K" echo -e "\r\033[K"
done done
tput rc tput rc 2>/dev/null
} }
function cleanup() { function cleanup() {
clear_menu clear_menu
tput rc tput rc 2>/dev/null
tput cnorm tput cnorm 2>/dev/null
tput rmcup tput rmcup 2>/dev/null
echo -e "\n${TIP} ${RED}操作已取消${PLAIN}\n" echo -e "\n\033[1;44m 提示 \033[0m \033[31m操作已取消\033[0m\n"
exit 130 exit 130
} }
function draw_menu() { function draw_menu() {
tput clear tput clear 2>/dev/null
tput cup 0 0 tput cup 0 0 2>/dev/null
echo -e "${message}" echo -e "${message}"
local end=$((start + page_size - 1)) local end=$((start + page_size - 1))
if [ $end -ge ${#options[@]} ]; then if [ $end -ge ${#options[@]} ]; then
@@ -2586,9 +2586,9 @@ function interactive_select_mirror() {
fi fi
echo "$key" echo "$key"
} }
tput smcup # 保存当前屏幕并切换到新屏幕 tput smcup 2>/dev/null # 保存当前屏幕并切换到新屏幕
tput sc # 保存光标位置 tput sc 2>/dev/null # 保存光标位置
tput civis # 隐藏光标 tput civis 2>/dev/null # 隐藏光标
trap "cleanup" INT TERM # 捕捉脚本结束时恢复光标 trap "cleanup" INT TERM # 捕捉脚本结束时恢复光标
draw_menu # 初始化菜单位置 draw_menu # 初始化菜单位置
# 处理选择 # 处理选择
@@ -2623,9 +2623,9 @@ function interactive_select_mirror() {
draw_menu draw_menu
done done
# clear_menu # 清除菜单 # clear_menu # 清除菜单
tput cnorm # 恢复光标 tput cnorm 2>/dev/null # 恢复光标
tput rmcup # 恢复之前的屏幕 tput rmcup 2>/dev/null # 恢复之前的屏幕
# tput rc # 恢复光标位置 # tput rc 2>/dev/null # 恢复光标位置
# 处理结果 # 处理结果
_SELECT_RESULT="${options[$selected]}" _SELECT_RESULT="${options[$selected]}"
} }
@@ -2638,19 +2638,19 @@ function interactive_select_boolean() {
local original_line local original_line
function store_position() { function store_position() {
# 保存菜单开始前的行位置 # 保存菜单开始前的行位置
original_line=$(tput lines) original_line=$(tput lines 2>/dev/null)
} }
function clear_menu() { function clear_menu() {
# 向上移动到菜单开始位置并清除菜单 # 向上移动到菜单开始位置并清除菜单
for ((i = 0; i < ${menu_height}; i++)); do for ((i = 0; i < ${menu_height}; i++)); do
tput cuu1 # 光标上移一行 tput cuu1 2>/dev/null # 光标上移一行
tput el # 清除当前行 tput el 2>/dev/null # 清除当前行
done done
} }
function cleanup() { function cleanup() {
clear_menu clear_menu
tput cnorm tput cnorm 2>/dev/null
echo -e "\n${TIP} ${RED}操作已取消${PLAIN}\n" echo -e "\n\033[1;44m 提示 \033[0m \033[31m操作已取消\033[0m\n"
exit 130 exit 130
} }
function draw_menu() { function draw_menu() {
@@ -2658,9 +2658,9 @@ function interactive_select_boolean() {
echo -e "╭─ ${message}" echo -e "╭─ ${message}"
echo -e "│" echo -e "│"
if [ "$selected" -eq 0 ]; then if [ "$selected" -eq 0 ]; then
echo -e "╰─ \033[32m●\033[0m 是\033[2m / ○ 否\033[0m" echo -e "╰─ \033[34m●\033[0m 是\033[2m / ○ 否\033[0m"
else else
echo -e "╰─ \033[2m○ 是 / \033[0m\033[32m●\033[0m 否" echo -e "╰─ \033[2m○ 是 / \033[0m\033[34m●\033[0m 否"
fi fi
} }
@@ -2672,7 +2672,7 @@ function interactive_select_boolean() {
fi fi
echo "$key" echo "$key"
} }
tput civis # 隐藏光标 tput civis 2>/dev/null # 隐藏光标
store_position # 记录当前位置 store_position # 记录当前位置
trap "cleanup" INT TERM trap "cleanup" INT TERM
draw_menu # 初始化菜单位置 draw_menu # 初始化菜单位置
@@ -2713,7 +2713,7 @@ function interactive_select_boolean() {
echo -e "╰─ \033[2m○ 是 / \033[0m\033[32m●\033[0m \033[1m否\033[0m" echo -e "╰─ \033[2m○ 是 / \033[0m\033[32m●\033[0m \033[1m否\033[0m"
_SELECT_RESULT="false" _SELECT_RESULT="false"
fi fi
tput cnorm # 恢复光标 tput cnorm 2>/dev/null # 恢复光标
} }
############################################################################## ##############################################################################

View File

@@ -120,7 +120,7 @@ WARN="\033[1;43m 警告 ${PLAIN}"
ERROR="\033[1;31m✘${PLAIN}" ERROR="\033[1;31m✘${PLAIN}"
FAIL="\033[1;31m✘${PLAIN}" FAIL="\033[1;31m✘${PLAIN}"
TIP="\033[1;44m 提示 ${PLAIN}" TIP="\033[1;44m 提示 ${PLAIN}"
WORKING="\033[1;36m>_${PLAIN}" WORKING="\033[1;36m${PLAIN}"
function main() { function main() {
permission_judgment permission_judgment
@@ -322,7 +322,7 @@ function run_start() {
## 运行结束 ## 运行结束
function run_end() { function run_end() {
echo -e "\n✨ \033[1;34mPowered by https://linuxmirrors.cn\033[0m\n" echo -e "\n✨ \033[3;1mPowered by \033[34mhttps://linuxmirrors.cn\033[0m\n"
# echo -e "\n ------ 脚本运行结束 ------" # echo -e "\n ------ 脚本运行结束 ------"
# echo -e ' \033[0;1;35;95m┌─\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m┐\033[0m' # echo -e ' \033[0;1;35;95m┌─\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m──\033[0;1;34;94m──\033[0;1;35;95m──\033[0;1;31;91m──\033[0;1;33;93m──\033[0;1;32;92m──\033[0;1;36;96m┐\033[0m'
# echo -e ' \033[0;1;31;91m│▞\033[0;1;33;93m▀▖\033[0m \033[0;1;32;92m▙▗\033[0;1;36;96m▌\033[0m \033[0;1;31;91m▗\033[0;1;33;93m▐\033[0m \033[0;1;34;94m│\033[0m' # echo -e ' \033[0;1;31;91m│▞\033[0;1;33;93m▀▖\033[0m \033[0;1;32;92m▙▗\033[0;1;36;96m▌\033[0m \033[0;1;31;91m▗\033[0;1;33;93m▐\033[0m \033[0;1;34;94m│\033[0m'
@@ -718,7 +718,7 @@ function install_dependency_packages() {
rm -rf $Dir_YumRepos/*docker*.repo rm -rf $Dir_YumRepos/*docker*.repo
;; ;;
esac esac
echo -e "\n$WORKING 开始${SYNC_MIRROR_TEXT}...\n" echo -e "\n$WORKING ${SYNC_MIRROR_TEXT}...\n"
case "${SYSTEM_FACTIONS}" in case "${SYSTEM_FACTIONS}" in
"${SYSTEM_DEBIAN}") "${SYSTEM_DEBIAN}")
package_manager="apt-get" package_manager="apt-get"
@@ -1098,25 +1098,25 @@ function interactive_select_mirror() {
unset options[${#options[@]}-1] unset options[${#options[@]}-1]
local selected=0 local selected=0
local start=0 local start=0
local page_size=$(($(tput lines) - 3)) # 减去1行用于显示提示信息 local page_size=$(($(tput lines 2>/dev/null) - 3)) # 减去3行用于显示提示信息
function clear_menu() { function clear_menu() {
tput rc tput rc 2>/dev/null
for ((i = 0; i < ${#options[@]} + 1; i++)); do for ((i = 0; i < ${#options[@]} + 1; i++)); do
echo -e "\r\033[K" echo -e "\r\033[K"
done done
tput rc tput rc 2>/dev/null
} }
function cleanup() { function cleanup() {
clear_menu clear_menu
tput rc tput rc 2>/dev/null
tput cnorm tput cnorm 2>/dev/null
tput rmcup tput rmcup 2>/dev/null
echo -e "\n${TIP} ${RED}操作已取消${PLAIN}\n" echo -e "\n\033[1;44m 提示 \033[0m \033[31m操作已取消\033[0m\n"
exit 130 exit 130
} }
function draw_menu() { function draw_menu() {
tput clear tput clear 2>/dev/null
tput cup 0 0 tput cup 0 0 2>/dev/null
echo -e "${message}" echo -e "${message}"
local end=$((start + page_size - 1)) local end=$((start + page_size - 1))
if [ $end -ge ${#options[@]} ]; then if [ $end -ge ${#options[@]} ]; then
@@ -1138,9 +1138,9 @@ function interactive_select_mirror() {
fi fi
echo "$key" echo "$key"
} }
tput smcup # 保存当前屏幕并切换到新屏幕 tput smcup 2>/dev/null # 保存当前屏幕并切换到新屏幕
tput sc # 保存光标位置 tput sc 2>/dev/null # 保存光标位置
tput civis # 隐藏光标 tput civis 2>/dev/null # 隐藏光标
trap "cleanup" INT TERM # 捕捉脚本结束时恢复光标 trap "cleanup" INT TERM # 捕捉脚本结束时恢复光标
draw_menu # 初始化菜单位置 draw_menu # 初始化菜单位置
# 处理选择 # 处理选择
@@ -1175,9 +1175,9 @@ function interactive_select_mirror() {
draw_menu draw_menu
done done
# clear_menu # 清除菜单 # clear_menu # 清除菜单
tput cnorm # 恢复光标 tput cnorm 2>/dev/null # 恢复光标
tput rmcup # 恢复之前的屏幕 tput rmcup 2>/dev/null # 恢复之前的屏幕
# tput rc # 恢复光标位置 # tput rc 2>/dev/null # 恢复光标位置
# 处理结果 # 处理结果
_SELECT_RESULT="${options[$selected]}" _SELECT_RESULT="${options[$selected]}"
} }
@@ -1190,19 +1190,19 @@ function interactive_select_boolean() {
local original_line local original_line
function store_position() { function store_position() {
# 保存菜单开始前的行位置 # 保存菜单开始前的行位置
original_line=$(tput lines) original_line=$(tput lines 2>/dev/null)
} }
function clear_menu() { function clear_menu() {
# 向上移动到菜单开始位置并清除菜单 # 向上移动到菜单开始位置并清除菜单
for ((i = 0; i < ${menu_height}; i++)); do for ((i = 0; i < ${menu_height}; i++)); do
tput cuu1 # 光标上移一行 tput cuu1 2>/dev/null # 光标上移一行
tput el # 清除当前行 tput el 2>/dev/null # 清除当前行
done done
} }
function cleanup() { function cleanup() {
clear_menu clear_menu
tput cnorm tput cnorm 2>/dev/null
echo -e "\n${TIP} ${RED}操作已取消${PLAIN}\n" echo -e "\n\033[1;44m 提示 \033[0m \033[31m操作已取消\033[0m\n"
exit 130 exit 130
} }
function draw_menu() { function draw_menu() {
@@ -1210,9 +1210,9 @@ function interactive_select_boolean() {
echo -e "╭─ ${message}" echo -e "╭─ ${message}"
echo -e "" echo -e ""
if [ "$selected" -eq 0 ]; then if [ "$selected" -eq 0 ]; then
echo -e "╰─ \033[32m●\033[0m 是\033[2m / ○ 否\033[0m" echo -e "╰─ \033[34m●\033[0m 是\033[2m / ○ 否\033[0m"
else else
echo -e "╰─ \033[2m○ 是 / \033[0m\033[32m●\033[0m 否" echo -e "╰─ \033[2m○ 是 / \033[0m\033[34m●\033[0m 否"
fi fi
} }
@@ -1224,7 +1224,7 @@ function interactive_select_boolean() {
fi fi
echo "$key" echo "$key"
} }
tput civis # 隐藏光标 tput civis 2>/dev/null # 隐藏光标
store_position # 记录当前位置 store_position # 记录当前位置
trap "cleanup" INT TERM trap "cleanup" INT TERM
draw_menu # 初始化菜单位置 draw_menu # 初始化菜单位置
@@ -1265,7 +1265,7 @@ function interactive_select_boolean() {
echo -e "╰─ \033[2m○ 是 / \033[0m\033[32m●\033[0m \033[1m否\033[0m" echo -e "╰─ \033[2m○ 是 / \033[0m\033[32m●\033[0m \033[1m否\033[0m"
_SELECT_RESULT="false" _SELECT_RESULT="false"
fi fi
tput cnorm # 恢复光标 tput cnorm 2>/dev/null # 恢复光标
} }
handle_command_options "$@" handle_command_options "$@"