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:
CanbiZ 2025-11-27 15:28:55 +01:00
parent acadc4496e
commit a8940ee416
2 changed files with 3843 additions and 70 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1803,8 +1803,12 @@ install_script() {
menu_items+=("4" "Settings") menu_items+=("4" "Settings")
fi fi
if [ -z "$CHOICE" ]; then APPDEFAULTS_OPTION="$appdefaults_option"
SETTINGS_OPTION="$settings_option"
# Main menu loop - allows returning from Settings
while true; do
if [ -z "$CHOICE" ]; then
TMP_CHOICE=$(whiptail \ TMP_CHOICE=$(whiptail \
--backtitle "Proxmox VE Helper Scripts" \ --backtitle "Proxmox VE Helper Scripts" \
--title "Community-Scripts Options" \ --title "Community-Scripts Options" \
@ -1818,9 +1822,6 @@ install_script() {
CHOICE="$TMP_CHOICE" CHOICE="$TMP_CHOICE"
fi fi
APPDEFAULTS_OPTION="$appdefaults_option"
SETTINGS_OPTION="$settings_option"
# --- Main case --- # --- Main case ---
local defaults_target="" local defaults_target=""
local run_maybe_offer="no" local run_maybe_offer="no"
@ -1833,10 +1834,10 @@ install_script() {
base_settings "$VERBOSE" base_settings "$VERBOSE"
echo_default echo_default
defaults_target="$(ensure_global_default_vars_file)" defaults_target="$(ensure_global_default_vars_file)"
break
;; ;;
2 | advanced | ADVANCED) 2 | advanced | ADVANCED)
header_info header_info
echo -e "${ADVANCED}${BOLD}${RD}Using Advanced Install on node $PVEHOST_NAME${CL}" 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}" echo -e "${INFO}${BOLD}${DGN}PVE Version ${PVEVERSION} (Kernel: ${KERNEL_VERSION})${CL}"
METHOD="advanced" METHOD="advanced"
@ -1844,13 +1845,15 @@ install_script() {
advanced_settings advanced_settings
defaults_target="$(ensure_global_default_vars_file)" defaults_target="$(ensure_global_default_vars_file)"
run_maybe_offer="yes" run_maybe_offer="yes"
break
;; ;;
3 | mydefaults | MYDEFAULTS) 3 | mydefaults | MYDEFAULTS | userdefaults | USERDEFAULTS)
default_var_settings || { default_var_settings || {
msg_error "Failed to apply default.vars" msg_error "Failed to apply default.vars"
exit 1 exit 1
} }
defaults_target="/usr/local/community-scripts/default.vars" defaults_target="/usr/local/community-scripts/default.vars"
break
;; ;;
"$APPDEFAULTS_OPTION" | appdefaults | APPDEFAULTS) "$APPDEFAULTS_OPTION" | appdefaults | APPDEFAULTS)
if [ -f "$(get_app_defaults_path)" ]; then if [ -f "$(get_app_defaults_path)" ]; then
@ -1861,6 +1864,7 @@ install_script() {
_load_vars_file "$(get_app_defaults_path)" _load_vars_file "$(get_app_defaults_path)"
echo_default echo_default
defaults_target="$(get_app_defaults_path)" defaults_target="$(get_app_defaults_path)"
break
else else
msg_error "No App Defaults available for ${APP}" msg_error "No App Defaults available for ${APP}"
exit 1 exit 1
@ -1868,15 +1872,16 @@ install_script() {
;; ;;
"$SETTINGS_OPTION" | settings | SETTINGS) "$SETTINGS_OPTION" | settings | SETTINGS)
settings_menu settings_menu
# After settings menu, return to main menu # After settings menu, show main menu again
input_options header_info
return CHOICE=""
;; ;;
*) *)
echo -e "${CROSS}${RD}Invalid option: $CHOICE${CL}" echo -e "${CROSS}${RD}Invalid option: $CHOICE${CL}"
exit 1 exit 1
;; ;;
esac 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"