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:
3
kiauh.sh
3
kiauh.sh
@@ -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")
|
||||||
|
|||||||
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user