Add refactored build menu functions
Introduces misc/build refactor_menu.func with comprehensive build and configuration functions for LXC containers in Proxmox VE. Refactors and modularizes initialization, storage selection, resource management, and advanced interactive configuration logic from misc/build.func.
This commit is contained in:
parent
acadc4496e
commit
a8940ee416
3768
misc/build refactor_menu.func
Normal file
3768
misc/build refactor_menu.func
Normal file
File diff suppressed because it is too large
Load Diff
145
misc/build.func
145
misc/build.func
@ -1803,80 +1803,85 @@ install_script() {
|
||||
menu_items+=("4" "Settings")
|
||||
fi
|
||||
|
||||
if [ -z "$CHOICE" ]; then
|
||||
|
||||
TMP_CHOICE=$(whiptail \
|
||||
--backtitle "Proxmox VE Helper Scripts" \
|
||||
--title "Community-Scripts Options" \
|
||||
--ok-button "Select" --cancel-button "Exit Script" \
|
||||
--notags \
|
||||
--menu "\nChoose an option:\n Use TAB or Arrow keys to navigate, ENTER to select.\n" \
|
||||
20 60 9 \
|
||||
"${menu_items[@]}" \
|
||||
--default-item "1" \
|
||||
3>&1 1>&2 2>&3) || exit_script
|
||||
CHOICE="$TMP_CHOICE"
|
||||
fi
|
||||
|
||||
APPDEFAULTS_OPTION="$appdefaults_option"
|
||||
SETTINGS_OPTION="$settings_option"
|
||||
|
||||
# --- Main case ---
|
||||
local defaults_target=""
|
||||
local run_maybe_offer="no"
|
||||
case "$CHOICE" in
|
||||
1 | default | DEFAULT)
|
||||
header_info
|
||||
echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings on node $PVEHOST_NAME${CL}"
|
||||
VERBOSE="no"
|
||||
METHOD="default"
|
||||
base_settings "$VERBOSE"
|
||||
echo_default
|
||||
defaults_target="$(ensure_global_default_vars_file)"
|
||||
;;
|
||||
2 | advanced | ADVANCED)
|
||||
header_info
|
||||
|
||||
echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Install on node $PVEHOST_NAME${CL}"
|
||||
echo -e "${INFO}${BOLD}${DGN}PVE Version ${PVEVERSION} (Kernel: ${KERNEL_VERSION})${CL}"
|
||||
METHOD="advanced"
|
||||
base_settings
|
||||
advanced_settings
|
||||
defaults_target="$(ensure_global_default_vars_file)"
|
||||
run_maybe_offer="yes"
|
||||
;;
|
||||
3 | mydefaults | MYDEFAULTS)
|
||||
default_var_settings || {
|
||||
msg_error "Failed to apply default.vars"
|
||||
exit 1
|
||||
}
|
||||
defaults_target="/usr/local/community-scripts/default.vars"
|
||||
;;
|
||||
"$APPDEFAULTS_OPTION" | appdefaults | APPDEFAULTS)
|
||||
if [ -f "$(get_app_defaults_path)" ]; then
|
||||
header_info
|
||||
echo -e "${DEFAULT}${BOLD}${BL}Using App Defaults for ${APP} on node $PVEHOST_NAME${CL}"
|
||||
METHOD="appdefaults"
|
||||
base_settings
|
||||
_load_vars_file "$(get_app_defaults_path)"
|
||||
echo_default
|
||||
defaults_target="$(get_app_defaults_path)"
|
||||
else
|
||||
msg_error "No App Defaults available for ${APP}"
|
||||
exit 1
|
||||
# Main menu loop - allows returning from Settings
|
||||
while true; do
|
||||
if [ -z "$CHOICE" ]; then
|
||||
TMP_CHOICE=$(whiptail \
|
||||
--backtitle "Proxmox VE Helper Scripts" \
|
||||
--title "Community-Scripts Options" \
|
||||
--ok-button "Select" --cancel-button "Exit Script" \
|
||||
--notags \
|
||||
--menu "\nChoose an option:\n Use TAB or Arrow keys to navigate, ENTER to select.\n" \
|
||||
20 60 9 \
|
||||
"${menu_items[@]}" \
|
||||
--default-item "1" \
|
||||
3>&1 1>&2 2>&3) || exit_script
|
||||
CHOICE="$TMP_CHOICE"
|
||||
fi
|
||||
;;
|
||||
"$SETTINGS_OPTION" | settings | SETTINGS)
|
||||
settings_menu
|
||||
# After settings menu, return to main menu
|
||||
input_options
|
||||
return
|
||||
;;
|
||||
*)
|
||||
echo -e "${CROSS}${RD}Invalid option: $CHOICE${CL}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
# --- Main case ---
|
||||
local defaults_target=""
|
||||
local run_maybe_offer="no"
|
||||
case "$CHOICE" in
|
||||
1 | default | DEFAULT)
|
||||
header_info
|
||||
echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings on node $PVEHOST_NAME${CL}"
|
||||
VERBOSE="no"
|
||||
METHOD="default"
|
||||
base_settings "$VERBOSE"
|
||||
echo_default
|
||||
defaults_target="$(ensure_global_default_vars_file)"
|
||||
break
|
||||
;;
|
||||
2 | advanced | ADVANCED)
|
||||
header_info
|
||||
echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Install on node $PVEHOST_NAME${CL}"
|
||||
echo -e "${INFO}${BOLD}${DGN}PVE Version ${PVEVERSION} (Kernel: ${KERNEL_VERSION})${CL}"
|
||||
METHOD="advanced"
|
||||
base_settings
|
||||
advanced_settings
|
||||
defaults_target="$(ensure_global_default_vars_file)"
|
||||
run_maybe_offer="yes"
|
||||
break
|
||||
;;
|
||||
3 | mydefaults | MYDEFAULTS | userdefaults | USERDEFAULTS)
|
||||
default_var_settings || {
|
||||
msg_error "Failed to apply default.vars"
|
||||
exit 1
|
||||
}
|
||||
defaults_target="/usr/local/community-scripts/default.vars"
|
||||
break
|
||||
;;
|
||||
"$APPDEFAULTS_OPTION" | appdefaults | APPDEFAULTS)
|
||||
if [ -f "$(get_app_defaults_path)" ]; then
|
||||
header_info
|
||||
echo -e "${DEFAULT}${BOLD}${BL}Using App Defaults for ${APP} on node $PVEHOST_NAME${CL}"
|
||||
METHOD="appdefaults"
|
||||
base_settings
|
||||
_load_vars_file "$(get_app_defaults_path)"
|
||||
echo_default
|
||||
defaults_target="$(get_app_defaults_path)"
|
||||
break
|
||||
else
|
||||
msg_error "No App Defaults available for ${APP}"
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
"$SETTINGS_OPTION" | settings | SETTINGS)
|
||||
settings_menu
|
||||
# After settings menu, show main menu again
|
||||
header_info
|
||||
CHOICE=""
|
||||
;;
|
||||
*)
|
||||
echo -e "${CROSS}${RD}Invalid option: $CHOICE${CL}"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [[ -n "$defaults_target" ]]; then
|
||||
ensure_storage_selection_for_vars_file "$defaults_target"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user