Expand and refactor install_script menu options

Added new preset and menu options for App Defaults, Diagnostics, and Storage Settings. Refactored the menu to be dynamically built and improved handling for each choice, including better diagnostics toggling and support for app-specific defaults. This enhances flexibility and user experience in the installation script.
This commit is contained in:
CanbiZ 2025-09-16 13:05:53 +02:00
parent 9a1f0de47e
commit 6ca38e23ae

View File

@ -1459,37 +1459,51 @@ install_script() {
ADVANCED | advanced | 3) ADVANCED | advanced | 3)
CHOICE="3" CHOICE="3"
;; ;;
DEFAULT_VARS | default_vars | 4) MYDEFAULTS | mydefaults | 4)
CHOICE="4" CHOICE="4"
;; ;;
APPDEFAULTS | appdefaults | 5)
CHOICE="5"
;;
DIAGNOSTICS | diagnostics | 6)
CHOICE="6"
;;
STORAGE | storage | 7)
CHOICE="7"
;;
*) *)
echo -e "\n${CROSS}${RD}Invalid PRESET value: ${PRESET}${CL}\n" echo -e "\n${CROSS}${RD}Invalid PRESET value: ${PRESET}${CL}\n"
exit 1 exit 1
;; ;;
esac esac
else else
#"4" "Use Config File" \ # Build dynamic menu
#"5" "Manage Default Storage" \ local menu_items=(
while true; do "1" "Default Settings"
"2" "Default Settings (Verbose)"
"3" "Advanced Install"
"4" "My Defaults"
)
if [ -f "$(get_app_defaults_path)" ]; then
menu_items+=("5" "App Defaults for ${APP}")
fi
menu_items+=(
"6" "Diagnostic Settings"
"7" "Storage Settings"
"8" "Exit"
)
TMP_CHOICE=$(whiptail --backtitle "[dev] Proxmox VE Helper Scripts" \ TMP_CHOICE=$(whiptail --backtitle "[dev] Proxmox VE Helper Scripts" \
--title "SETTINGS" \ --title "SETTINGS" \
--menu "Choose an option:" 20 60 6 \ --menu "Choose an option:" 20 60 9 \
"1" "Default Settings" \ "${menu_items[@]}" \
"2" "Default Settings (with verbose)" \
"3" "Advanced Settings" \
"4" "My Default Vars" \
"5" "Diagnostic Settings" \
"6" "Exit" \
--default-item "1" 3>&1 1>&2 2>&3) || true --default-item "1" 3>&1 1>&2 2>&3) || true
if [ -z "$TMP_CHOICE" ]; then if [ -z "$TMP_CHOICE" ]; then
echo -e "\n${CROSS}${RD}Menu canceled. Exiting script.${CL}\n" echo -e "\n${CROSS}${RD}Menu canceled. Exiting script.${CL}\n"
exit 0 exit 0
fi fi
CHOICE="$TMP_CHOICE" CHOICE="$TMP_CHOICE"
break
done
fi fi
case $CHOICE in case $CHOICE in
@ -1503,7 +1517,7 @@ install_script() {
;; ;;
2) 2)
header_info header_info
echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings on node $PVEHOST_NAME (${VERBOSE_CROPPED}Verbose)${CL}" echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings on node $PVEHOST_NAME (Verbose)${CL}"
VERBOSE="yes" VERBOSE="yes"
METHOD="default" METHOD="default"
base_settings "$VERBOSE" base_settings "$VERBOSE"
@ -1511,45 +1525,54 @@ install_script() {
;; ;;
3) 3)
header_info header_info
echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Settings on node $PVEHOST_NAME${CL}" echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Install on node $PVEHOST_NAME${CL}"
METHOD="advanced" METHOD="advanced"
base_settings base_settings
advanced_settings advanced_settings
maybe_offer_save_app_defaults maybe_offer_save_app_defaults
;; ;;
# 4)
# header_info
# echo -e "${INFO}${HOLD} ${GN}Using Config File on node $PVEHOST_NAME${CL}"
# METHOD="advanced"
# source <(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/config-file.func)
# config_file
# ;;
4) 4)
# My Defaults (default.vars)
default_var_settings || { default_var_settings || {
msg_error "Failed to apply default.vars" msg_error "Failed to apply default.vars"
exit 1 exit 1
} }
;; ;;
5) 5)
if [[ $DIAGNOSTICS == "yes" ]]; then # App Defaults
if whiptail --backtitle "[dev] Proxmox VE Helper Scripts" --title "DIAGNOSTICS SETTINGS" --yesno "Send Diagnostics of LXC Installation?\n\nCurrent setting: ${DIAGNOSTICS}" 10 58 \ if [ -f "$(get_app_defaults_path)" ]; then
--yes-button "No" --no-button "Back"; then header_info
DIAGNOSTICS="no" echo -e "${DEFAULT}${BOLD}${BL}Using App Defaults for ${APP} on node $PVEHOST_NAME${CL}"
sed -i 's/^DIAGNOSTICS=.*/DIAGNOSTICS=no/' /usr/local/community-scripts/diagnostics METHOD="appdefaults"
whiptail --backtitle "[dev] Proxmox VE Helper Scripts" --title "DIAGNOSTICS SETTINGS" --msgbox "Diagnostics settings changed to ${DIAGNOSTICS}." 8 58 base_settings
fi _load_vars_file "$(get_app_defaults_path)"
echo_default
else else
if whiptail --backtitle "[dev] Proxmox VE Helper Scripts" --title "DIAGNOSTICS SETTINGS" --yesno "Send Diagnostics of LXC Installation?\n\nCurrent setting: ${DIAGNOSTICS}" 10 58 \ msg_error "No App Defaults available for ${APP}"
--yes-button "Yes" --no-button "Back"; then exit 1
DIAGNOSTICS="yes"
sed -i 's/^DIAGNOSTICS=.*/DIAGNOSTICS=yes/' /usr/local/community-scripts/diagnostics
whiptail --backtitle "[dev] Proxmox VE Helper Scripts" --title "DIAGNOSTICS SETTINGS" --msgbox "Diagnostics settings changed to ${DIAGNOSTICS}." 8 58
fi
fi fi
;; ;;
6) 6)
echo -e "\n${CROSS}${RD}Script terminated. Have a great day!${CL}\n" if [[ $DIAGNOSTICS == "yes" ]]; then
if whiptail --backtitle "[dev] Proxmox VE Helper Scripts" --title "DIAGNOSTIC SETTINGS" --yesno "Send Diagnostics?\n\nCurrent: ${DIAGNOSTICS}" 10 58 \
--yes-button "No" --no-button "Back"; then
DIAGNOSTICS="no"
sed -i 's/^DIAGNOSTICS=.*/DIAGNOSTICS=no/' /usr/local/community-scripts/diagnostics
whiptail --msgbox "Diagnostics set to ${DIAGNOSTICS}." 8 58
fi
else
if whiptail --backtitle "[dev] Proxmox VE Helper Scripts" --title "DIAGNOSTIC SETTINGS" --yesno "Send Diagnostics?\n\nCurrent: ${DIAGNOSTICS}" 10 58 \
--yes-button "Yes" --no-button "Back"; then
DIAGNOSTICS="yes"
sed -i 's/^DIAGNOSTICS=.*/DIAGNOSTICS=yes/' /usr/local/community-scripts/diagnostics
whiptail --msgbox "Diagnostics set to ${DIAGNOSTICS}." 8 58
fi
fi
;;
7)
storage_settings_menu
;;
8)
echo -e "\n${CROSS}${RD}Script terminated.${CL}\n"
exit 0 exit 0
;; ;;
*) *)
@ -1558,6 +1581,7 @@ install_script() {
esac esac
} }
check_container_resources() { check_container_resources() {
# Check actual RAM & Cores # Check actual RAM & Cores
current_ram=$(free -m | awk 'NR==2{print $2}') current_ram=$(free -m | awk 'NR==2{print $2}')