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")
|
menu_items+=("4" "Settings")
|
||||||
fi
|
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"
|
APPDEFAULTS_OPTION="$appdefaults_option"
|
||||||
SETTINGS_OPTION="$settings_option"
|
SETTINGS_OPTION="$settings_option"
|
||||||
|
|
||||||
# --- Main case ---
|
# Main menu loop - allows returning from Settings
|
||||||
local defaults_target=""
|
while true; do
|
||||||
local run_maybe_offer="no"
|
if [ -z "$CHOICE" ]; then
|
||||||
case "$CHOICE" in
|
TMP_CHOICE=$(whiptail \
|
||||||
1 | default | DEFAULT)
|
--backtitle "Proxmox VE Helper Scripts" \
|
||||||
header_info
|
--title "Community-Scripts Options" \
|
||||||
echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings on node $PVEHOST_NAME${CL}"
|
--ok-button "Select" --cancel-button "Exit Script" \
|
||||||
VERBOSE="no"
|
--notags \
|
||||||
METHOD="default"
|
--menu "\nChoose an option:\n Use TAB or Arrow keys to navigate, ENTER to select.\n" \
|
||||||
base_settings "$VERBOSE"
|
20 60 9 \
|
||||||
echo_default
|
"${menu_items[@]}" \
|
||||||
defaults_target="$(ensure_global_default_vars_file)"
|
--default-item "1" \
|
||||||
;;
|
3>&1 1>&2 2>&3) || exit_script
|
||||||
2 | advanced | ADVANCED)
|
CHOICE="$TMP_CHOICE"
|
||||||
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
|
|
||||||
fi
|
fi
|
||||||
;;
|
|
||||||
"$SETTINGS_OPTION" | settings | SETTINGS)
|
# --- Main case ---
|
||||||
settings_menu
|
local defaults_target=""
|
||||||
# After settings menu, return to main menu
|
local run_maybe_offer="no"
|
||||||
input_options
|
case "$CHOICE" in
|
||||||
return
|
1 | default | DEFAULT)
|
||||||
;;
|
header_info
|
||||||
*)
|
echo -e "${DEFAULT}${BOLD}${BL}Using Default Settings on node $PVEHOST_NAME${CL}"
|
||||||
echo -e "${CROSS}${RD}Invalid option: $CHOICE${CL}"
|
VERBOSE="no"
|
||||||
exit 1
|
METHOD="default"
|
||||||
;;
|
base_settings "$VERBOSE"
|
||||||
esac
|
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
|
if [[ -n "$defaults_target" ]]; then
|
||||||
ensure_storage_selection_for_vars_file "$defaults_target"
|
ensure_storage_selection_for_vars_file "$defaults_target"
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user