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:
parent
9a1f0de47e
commit
6ca38e23ae
216
misc/build.func
216
misc/build.func
@ -1450,114 +1450,138 @@ install_script() {
|
|||||||
# --- PRESET support ---
|
# --- PRESET support ---
|
||||||
if [ -n "${PRESET:-}" ]; then
|
if [ -n "${PRESET:-}" ]; then
|
||||||
case "$PRESET" in
|
case "$PRESET" in
|
||||||
DEFAULT | default | 1)
|
DEFAULT | default | 1)
|
||||||
CHOICE="1"
|
CHOICE="1"
|
||||||
;;
|
;;
|
||||||
VERBOSE | verbose | 2)
|
VERBOSE | verbose | 2)
|
||||||
CHOICE="2"
|
CHOICE="2"
|
||||||
;;
|
;;
|
||||||
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)
|
||||||
echo -e "\n${CROSS}${RD}Invalid PRESET value: ${PRESET}${CL}\n"
|
CHOICE="5"
|
||||||
exit 1
|
;;
|
||||||
;;
|
DIAGNOSTICS | diagnostics | 6)
|
||||||
|
CHOICE="6"
|
||||||
|
;;
|
||||||
|
STORAGE | storage | 7)
|
||||||
|
CHOICE="7"
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo -e "\n${CROSS}${RD}Invalid PRESET value: ${PRESET}${CL}\n"
|
||||||
|
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"
|
||||||
TMP_CHOICE=$(whiptail --backtitle "[dev] Proxmox VE Helper Scripts" \
|
"2" "Default Settings (Verbose)"
|
||||||
--title "SETTINGS" \
|
"3" "Advanced Install"
|
||||||
--menu "Choose an option:" 20 60 6 \
|
"4" "My Defaults"
|
||||||
"1" "Default Settings" \
|
)
|
||||||
"2" "Default Settings (with verbose)" \
|
if [ -f "$(get_app_defaults_path)" ]; then
|
||||||
"3" "Advanced Settings" \
|
menu_items+=("5" "App Defaults for ${APP}")
|
||||||
"4" "My Default Vars" \
|
fi
|
||||||
"5" "Diagnostic Settings" \
|
menu_items+=(
|
||||||
"6" "Exit" \
|
"6" "Diagnostic Settings"
|
||||||
--default-item "1" 3>&1 1>&2 2>&3) || true
|
"7" "Storage Settings"
|
||||||
|
"8" "Exit"
|
||||||
|
)
|
||||||
|
|
||||||
if [ -z "$TMP_CHOICE" ]; then
|
TMP_CHOICE=$(whiptail --backtitle "[dev] Proxmox VE Helper Scripts" \
|
||||||
echo -e "\n${CROSS}${RD}Menu canceled. Exiting script.${CL}\n"
|
--title "SETTINGS" \
|
||||||
exit 0
|
--menu "Choose an option:" 20 60 9 \
|
||||||
fi
|
"${menu_items[@]}" \
|
||||||
|
--default-item "1" 3>&1 1>&2 2>&3) || true
|
||||||
|
|
||||||
CHOICE="$TMP_CHOICE"
|
if [ -z "$TMP_CHOICE" ]; then
|
||||||
break
|
echo -e "\n${CROSS}${RD}Menu canceled. Exiting script.${CL}\n"
|
||||||
done
|
exit 0
|
||||||
|
fi
|
||||||
|
CHOICE="$TMP_CHOICE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case $CHOICE in
|
case $CHOICE in
|
||||||
1)
|
1)
|
||||||
header_info
|
header_info
|
||||||
echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings on node $PVEHOST_NAME${CL}"
|
echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings on node $PVEHOST_NAME${CL}"
|
||||||
VERBOSE="no"
|
VERBOSE="no"
|
||||||
METHOD="default"
|
METHOD="default"
|
||||||
base_settings "$VERBOSE"
|
base_settings "$VERBOSE"
|
||||||
echo_default
|
echo_default
|
||||||
;;
|
;;
|
||||||
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"
|
||||||
echo_default
|
echo_default
|
||||||
;;
|
;;
|
||||||
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)
|
4)
|
||||||
# header_info
|
default_var_settings || {
|
||||||
# echo -e "${INFO}${HOLD} ${GN}Using Config File on node $PVEHOST_NAME${CL}"
|
msg_error "Failed to apply default.vars"
|
||||||
# METHOD="advanced"
|
exit 1
|
||||||
# source <(curl -fsSL https://git.community-scripts.org/community-scripts/ProxmoxVED/raw/branch/main/misc/config-file.func)
|
}
|
||||||
# config_file
|
;;
|
||||||
# ;;
|
5)
|
||||||
4)
|
# App Defaults
|
||||||
# My Defaults (default.vars)
|
if [ -f "$(get_app_defaults_path)" ]; then
|
||||||
default_var_settings || {
|
header_info
|
||||||
msg_error "Failed to apply default.vars"
|
echo -e "${DEFAULT}${BOLD}${BL}Using App Defaults for ${APP} on node $PVEHOST_NAME${CL}"
|
||||||
exit 1
|
METHOD="appdefaults"
|
||||||
}
|
base_settings
|
||||||
;;
|
_load_vars_file "$(get_app_defaults_path)"
|
||||||
5)
|
echo_default
|
||||||
if [[ $DIAGNOSTICS == "yes" ]]; then
|
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 "No" --no-button "Back"; then
|
exit 1
|
||||||
DIAGNOSTICS="no"
|
|
||||||
sed -i 's/^DIAGNOSTICS=.*/DIAGNOSTICS=no/' /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
|
||||||
else
|
;;
|
||||||
if whiptail --backtitle "[dev] Proxmox VE Helper Scripts" --title "DIAGNOSTICS SETTINGS" --yesno "Send Diagnostics of LXC Installation?\n\nCurrent setting: ${DIAGNOSTICS}" 10 58 \
|
6)
|
||||||
--yes-button "Yes" --no-button "Back"; then
|
if [[ $DIAGNOSTICS == "yes" ]]; then
|
||||||
DIAGNOSTICS="yes"
|
if whiptail --backtitle "[dev] Proxmox VE Helper Scripts" --title "DIAGNOSTIC SETTINGS" --yesno "Send Diagnostics?\n\nCurrent: ${DIAGNOSTICS}" 10 58 \
|
||||||
sed -i 's/^DIAGNOSTICS=.*/DIAGNOSTICS=yes/' /usr/local/community-scripts/diagnostics
|
--yes-button "No" --no-button "Back"; then
|
||||||
whiptail --backtitle "[dev] Proxmox VE Helper Scripts" --title "DIAGNOSTICS SETTINGS" --msgbox "Diagnostics settings changed to ${DIAGNOSTICS}." 8 58
|
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
|
fi
|
||||||
fi
|
;;
|
||||||
;;
|
7)
|
||||||
6)
|
storage_settings_menu
|
||||||
echo -e "\n${CROSS}${RD}Script terminated. Have a great day!${CL}\n"
|
;;
|
||||||
exit 0
|
8)
|
||||||
;;
|
echo -e "\n${CROSS}${RD}Script terminated.${CL}\n"
|
||||||
*)
|
exit 0
|
||||||
echo -e "${CROSS}${RD}Invalid option, please try again.${CL}"
|
;;
|
||||||
;;
|
*)
|
||||||
|
echo -e "${CROSS}${RD}Invalid option, please try again.${CL}"
|
||||||
|
;;
|
||||||
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}')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user