mirror of
https://github.com/juewuy/ShellCrash.git
synced 2026-03-12 08:21:40 +00:00
refactor: replace recursion with while loop in main_menu
This commit is contained in:
154
scripts/menu.sh
154
scripts/menu.sh
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user