Merge pull request #1122 from sofia-riese/patch-1

refactor: replace recursion with while loop in main_menu
This commit is contained in:
juewuy
2026-01-14 20:31:14 +08:00
committed by GitHub

View File

@@ -159,88 +159,82 @@ ckstatus() { #脚本启动前检查
} }
main_menu() { main_menu() {
ckstatus while true; do
ckstatus
echo -e " 1 \033[32m$MENU_MAIN_1\033[0m" echo -e " 1 \033[32m$MENU_MAIN_1\033[0m"
echo -e " 2 \033[36m$MENU_MAIN_2\033[0m" echo -e " 2 \033[36m$MENU_MAIN_2\033[0m"
echo -e " 3 \033[31m$MENU_MAIN_3\033[0m" echo -e " 3 \033[31m$MENU_MAIN_3\033[0m"
echo -e " 4 \033[33m$MENU_MAIN_4\033[0m" echo -e " 4 \033[33m$MENU_MAIN_4\033[0m"
echo -e " 5 \033[32m$MENU_MAIN_5\033[0m" echo -e " 5 \033[32m$MENU_MAIN_5\033[0m"
echo -e " 6 \033[36m$MENU_MAIN_6\033[0m" echo -e " 6 \033[36m$MENU_MAIN_6\033[0m"
echo -e " 7 \033[33m$MENU_MAIN_7\033[0m" echo -e " 7 \033[33m$MENU_MAIN_7\033[0m"
echo -e " 8 $MENU_MAIN_8" echo -e " 8 $MENU_MAIN_8"
echo -e " 9 \033[32m$MENU_MAIN_9\033[0m" echo -e " 9 \033[32m$MENU_MAIN_9\033[0m"
echo "-----------------------------------------------"
echo -e " 0 $MENU_MAIN_0"
read -p "$MENU_MAIN_PROMPT" num
case "$num" in
0)
exit
;;
1)
start_service
exit
;;
2)
checkcfg=$(cat "$CFG_PATH")
. "$CRASHDIR"/menus/2_settings.sh && settings
if [ -n "$PID" ]; then
checkcfg_new=$(cat "$CFG_PATH")
[ "$checkcfg" != "$checkcfg_new" ] && checkrestart
fi
main_menu
;;
3)
[ "$bot_tg_service" = ON ] && . "$CRASHDIR"/menus/bot_tg_service.sh && bot_tg_stop
"$CRASHDIR"/start.sh stop
sleep 1
echo "-----------------------------------------------" echo "-----------------------------------------------"
echo -e "\033[31m$corename$MENU_SERVICE_STOPPED\033[0m" echo -e " 0 $MENU_MAIN_0"
main_menu
;; read -p "$MENU_MAIN_PROMPT" num
4)
. "$CRASHDIR"/menus/4_setboot.sh && setboot case "$num" in
main_menu "" | 0)
;; exit
5) ;;
. "$CRASHDIR"/menus/5_task.sh && task_menu 1)
main_menu start_service
;; exit
6) ;;
. "$CRASHDIR"/menus/6_core_config.sh && set_core_config 2)
main_menu checkcfg=$(cat "$CFG_PATH")
;; . "$CRASHDIR"/menus/2_settings.sh && settings
7) if [ -n "$PID" ]; then
GT_CFG_PATH="$CRASHDIR"/configs/gateway.cfg checkcfg_new=$(cat "$CFG_PATH")
touch "$GT_CFG_PATH" [ "$checkcfg" != "$checkcfg_new" ] && checkrestart
checkcfg=$(cat "$CFG_PATH" "$GT_CFG_PATH") fi
. "$CRASHDIR"/menus/7_gateway.sh && gateway ;;
if [ -n "$PID" ]; then 3)
checkcfg_new=$(cat "$CFG_PATH" "$GT_CFG_PATH") [ "$bot_tg_service" = ON ] && . "$CRASHDIR"/menus/bot_tg_service.sh && bot_tg_stop
[ "$checkcfg" != "$checkcfg_new" ] && checkrestart "$CRASHDIR"/start.sh stop
fi sleep 1
main_menu echo "-----------------------------------------------"
;; echo -e "\033[31m$corename$MENU_SERVICE_STOPPED\033[0m"
8) ;;
. "$CRASHDIR"/menus/8_tools.sh && tools 4)
main_menu . "$CRASHDIR"/menus/4_setboot.sh && setboot
;; ;;
9) 5)
checkcfg=$(cat "$CFG_PATH") . "$CRASHDIR"/menus/5_task.sh && task_menu
. "$CRASHDIR"/menus/9_upgrade.sh && upgrade ;;
if [ -n "$PID" ]; then 6)
checkcfg_new=$(cat "$CFG_PATH") . "$CRASHDIR"/menus/6_core_config.sh && set_core_config
[ "$checkcfg" != "$checkcfg_new" ] && checkrestart ;;
fi 7)
main_menu GT_CFG_PATH="$CRASHDIR"/configs/gateway.cfg
;; touch "$GT_CFG_PATH"
*) checkcfg=$(cat "$CFG_PATH" "$GT_CFG_PATH")
errornum . "$CRASHDIR"/menus/7_gateway.sh && gateway
exit if [ -n "$PID" ]; then
;; checkcfg_new=$(cat "$CFG_PATH" "$GT_CFG_PATH")
esac [ "$checkcfg" != "$checkcfg_new" ] && checkrestart
fi
;;
8)
. "$CRASHDIR"/menus/8_tools.sh && tools
;;
9)
checkcfg=$(cat "$CFG_PATH")
. "$CRASHDIR"/menus/9_upgrade.sh && upgrade
if [ -n "$PID" ]; then
checkcfg_new=$(cat "$CFG_PATH")
[ "$checkcfg" != "$checkcfg_new" ] && checkrestart
fi
;;
*)
errornum
sleep 1
;;
esac
done
} }
case "$1" in case "$1" in