script: Fix whiptail cancel behavior

set -e causes the script to exit when whiptail exit with 1 (meaning user picked cancel)
This commit is contained in:
Yifei Ding
2021-11-10 18:19:15 -08:00
parent 0b737e46b4
commit fa1fe33fe1
2 changed files with 74 additions and 68 deletions

View File

@@ -4,7 +4,8 @@
alias GETTEXT='gettext "KIAUH"' alias GETTEXT='gettext "KIAUH"'
#clear #clear
set -e # TODO set -e cause whiptail to force an exit because it use stderr, need a workaround here
# set -e
### set color variables ### set color variables
green=$(echo -en "\e[92m") green=$(echo -en "\e[92m")

View File

@@ -43,77 +43,82 @@ Do you want to update now?" \
fi fi
} }
main_menu(){ main_menu() {
#print KIAUH update msg if update available #print KIAUH update msg if update available
if [ "$KIAUH_UPDATE_AVAIL" = "true" ]; then if [ "$KIAUH_UPDATE_AVAIL" = "true" ]; then
kiauh_update_dialog kiauh_update_dialog
fi fi
#check install status #check install status
print_kiauh_version print_kiauh_version
klipper_status klipper_status
moonraker_status moonraker_status
dwc2_status dwc2_status
fluidd_status fluidd_status
mainsail_status mainsail_status
octoprint_status octoprint_status
klipperscreen_status klipperscreen_status
MoonrakerTelegramBot_status MoonrakerTelegramBot_status
print_branch print_branch
print_msg && clear_msg print_msg && clear_msg
while true; do while true; do
MAIN_MENU=$(whiptail --title "$KIAUH_TITLE" --cancel-button "Quit" --menu "Choose an option:"\ local menu_str="Klipper: $KLIPPER_STATUS Branch: $PRINT_BRANCH\n
"$KIAUH_WHIPTAIL_NORMAL_HEIGHT" "$KIAUH_WHIPTAIL_NORMAL_WIDTH" 8\ Moonraker: $MOONRAKER_STATUS\n
"0 Upload Log" "Upload Log For Bug Report"\ Mainsail: $MAINSAIL_STATUS Fluidd: $FLUIDD_STATUS
"1 Status" "Status Page"\ KlipperScreen: $KLIPPERSCREEN_STATUS Telegram Bot: $MOONRAKER_TELEGRAM_BOT_STATUS
"2 Install" "Install Instances"\ DWC2: $DWC2_STATUS Octoprint: $OCTOPRINT_STATUS"
"3 Update" "Update Instances"\ local menu_choices=("1" "Install" "2" "Update" "3" "Remove" "4" "Advanced Settings" "5" "Backup" "6" "Settings" "7" "Upload Log")
"4 Remove" "Remove Instances"\ local menu
"5 Advanced" "Advanced Settings"\ menu=$(whiptail --title "$KIAUH_TITLE $KIAUH_VER" --cancel-button "Finish" --notags --menu "$menu_str\n\nChoose an option:" \
"6 Backup" "Backup"\ "$KIAUH_WHIPTAIL_NORMAL_HEIGHT" "$KIAUH_WHIPTAIL_NORMAL_WIDTH" 8 "${menu_choices[@]}" 3>&1 1>&2 2>&3)
"7 Settings" "Configure KIAUH" 3>&1 1>&2 2>&3) local out=$?
case "$MAIN_MENU" in if [ $out -eq 1 ]; then
1\ *) echo "Current status" ;; break
2\ *) install_menu ;; elif [ $out -eq 1 ]; then
3\ *) update_menu ;; case "$menu" in
4\ *) remove_menu ;; 1) install_menu ;;
5\ *) advanced_menu ;; 2) update_menu ;;
6\ *) backup_menu ;; 3) remove_menu ;;
7\ *) settings_menu ;; 4) advanced_menu ;;
0\ *) do_action "upload_selection" && break;; 5) backup_menu ;;
*) echo "Unknown Command";; 6) settings_menu ;;
esac 7) upload_selection ;;
esac
else
exit 1
fi
done done
echo -e "${green}###### Happy printing! ######${default}"; echo
# while true; do # while true; do
# read -p "${cyan}Perform action:${default} " action; echo # read -p "${cyan}Perform action:${default} " action; echo
# case "$action" in # case "$action" in
# "start klipper") do_action_service "start" "klipper"; main_ui;; # "start klipper") do_action_service "start" "klipper"; main_ui;;
# "stop klipper") do_action_service "stop" "klipper"; main_ui;; # "stop klipper") do_action_service "stop" "klipper"; main_ui;;
# "restart klipper") do_action_service "restart" "klipper"; main_ui;; # "restart klipper") do_action_service "restart" "klipper"; main_ui;;
# "start moonraker") do_action_service "start" "moonraker"; main_ui;; # "start moonraker") do_action_service "start" "moonraker"; main_ui;;
# "stop moonraker") do_action_service "stop" "moonraker"; main_ui;; # "stop moonraker") do_action_service "stop" "moonraker"; main_ui;;
# "restart moonraker")do_action_service "restart" "moonraker"; main_ui;; # "restart moonraker")do_action_service "restart" "moonraker"; main_ui;;
# "start dwc") do_action_service "start" "dwc"; main_ui;; # "start dwc") do_action_service "start" "dwc"; main_ui;;
# "stop dwc") do_action_service "stop" "dwc"; main_ui;; # "stop dwc") do_action_service "stop" "dwc"; main_ui;;
# "restart dwc") do_action_service "restart" "dwc"; main_ui;; # "restart dwc") do_action_service "restart" "dwc"; main_ui;;
# "start octoprint") do_action_service "start" "octoprint"; main_ui;; # "start octoprint") do_action_service "start" "octoprint"; main_ui;;
# "stop octoprint") do_action_service "stop" "octoprint"; main_ui;; # "stop octoprint") do_action_service "stop" "octoprint"; main_ui;;
# "restart octoprint") do_action_service "restart" "octoprint"; main_ui;; # "restart octoprint") do_action_service "restart" "octoprint"; main_ui;;
# update) do_action "update_kiauh" "main_ui";; # update) do_action "update_kiauh" "main_ui";;
# 0) do_action "upload_selection" "main_ui";; # 0) do_action "upload_selection" "main_ui";;
# 1) clear && install_menu && break;; # 1) clear && install_menu && break;;
# 2) clear && update_menu && break;; # 2) clear && update_menu && break;;
# 3) clear && remove_menu && break;; # 3) clear && remove_menu && break;;
# 4) clear && advanced_menu && break;; # 4) clear && advanced_menu && break;;
# 5) clear && backup_menu && break;; # 5) clear && backup_menu && break;;
# 6) clear && settings_menu && break;; # 6) clear && settings_menu && break;;
# Q|q) # Q|q)
# echo -e "${green}###### Happy printing! ######${default}"; echo # echo -e "${green}###### Happy printing! ######${default}"; echo
# exit -1;; # exit -1;;
# *) # *)
# deny_action "main_ui";; # deny_action "main_ui";;
# esac # esac
# done # done
# clear; main_menu # clear; main_menu
} }