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
100
misc/build.func
100
misc/build.func
@ -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}')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user