diff --git a/misc/build.func b/misc/build.func index d1588eb89..56c247e82 100644 --- a/misc/build.func +++ b/misc/build.func @@ -2702,21 +2702,16 @@ advanced_settings() { # STEP 28: Verbose Mode & Confirmation # ═══════════════════════════════════════════════════════════════════════════ 28) - # PHS_VERBOSE forces verbose mode and skips the prompt - if [[ "$PHS_MODE" == "verbose" ]]; then + local verbose_default_flag="--defaultno" + [[ "$_verbose" == "yes" ]] && verbose_default_flag="" + + if whiptail --backtitle "Proxmox VE Helper Scripts [Step $STEP/$MAX_STEP]" \ + --title "VERBOSE MODE" \ + $verbose_default_flag \ + --yesno "\nEnable Verbose Mode?\n\nShows detailed output during installation." 12 58; then _verbose="yes" else - local verbose_default_flag="--defaultno" - [[ "$_verbose" == "yes" ]] && verbose_default_flag="" - - if whiptail --backtitle "Proxmox VE Helper Scripts [Step $STEP/$MAX_STEP]" \ - --title "VERBOSE MODE" \ - $verbose_default_flag \ - --yesno "\nEnable Verbose Mode?\n\nShows detailed output during installation." 12 58; then - _verbose="yes" - else - _verbose="no" - fi + _verbose="no" fi # Build summary local ct_type_desc="Unprivileged" @@ -3449,7 +3444,7 @@ configure_ssh_settings() { # msg_menu() # # - Displays a numbered menu for update_script() functions -# - In silent mode (PHS_MODE=silent): auto-selects the default option +# - In silent mode (PHS_SILENT=1): auto-selects the default option # - In interactive mode: shows menu via read with 10s timeout + default fallback # - Usage: CHOICE=$(msg_menu "Title" "tag1" "Description 1" "tag2" "Desc 2" ...) # - The first item is always the default @@ -3473,7 +3468,7 @@ msg_menu() { local count=${#tags[@]} # Silent mode: return default immediately - if [[ "$PHS_MODE" == "silent" ]]; then + if [[ -n "${PHS_SILENT+x}" ]] && [[ "${PHS_SILENT}" == "1" ]]; then echo "$default_tag" return 0 fi @@ -3509,30 +3504,6 @@ msg_menu() { return 0 } -# ------------------------------------------------------------------------------ -# resolve_phs_mode() -# -# - Resolves PHS_SILENT/PHS_VERBOSE env vars into a single PHS_MODE enum -# - Values: "silent", "verbose", "interactive" -# - If both PHS_SILENT=1 and PHS_VERBOSE=1, shows a conflict warning -# and defaults to "interactive" -# - Should be called once early, before any mode-dependent logic -# ------------------------------------------------------------------------------ -resolve_phs_mode() { - if [[ -n "${PHS_SILENT+x}" ]] && [[ "${PHS_SILENT}" == "1" ]] && [[ -n "${PHS_VERBOSE+x}" ]] && [[ "${PHS_VERBOSE}" == "1" ]]; then - whiptail --backtitle "Proxmox VE Helper Scripts" \ - --title "⚠️ Configuration Conflict Warning" \ - --msgbox "PHS_SILENT and PHS_VERBOSE environment variables are both set.\n\nFalling back to interactive mode." 10 58 - PHS_MODE="interactive" - elif [[ -n "${PHS_SILENT+x}" ]] && [[ "${PHS_SILENT}" == "1" ]]; then - PHS_MODE="silent" - elif [[ -n "${PHS_VERBOSE+x}" ]] && [[ "${PHS_VERBOSE}" == "1" ]]; then - PHS_MODE="verbose" - else - PHS_MODE="interactive" - fi -} - # ------------------------------------------------------------------------------ # start() # @@ -3543,16 +3514,17 @@ resolve_phs_mode() { # ------------------------------------------------------------------------------ start() { source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/tools.func) - resolve_phs_mode if command -v pveversion >/dev/null 2>&1; then install_script || return 0 return 0 - elif [[ "$PHS_MODE" == "silent" ]]; then + elif [ ! -z ${PHS_SILENT+x} ] && [[ "${PHS_SILENT}" == "1" ]]; then VERBOSE="no" set_std_mode - elif [[ "$PHS_MODE" == "verbose" ]]; then - VERBOSE="yes" - set_std_mode + ensure_profile_loaded + get_lxc_ip + update_script + update_motd_ip + cleanup_lxc else CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "${APP} LXC Update/Setting" --menu \ "Support/Update functions for ${APP} LXC. Choose an option:" \ @@ -3576,12 +3548,12 @@ start() { exit 0 ;; esac + ensure_profile_loaded + get_lxc_ip + update_script + update_motd_ip + cleanup_lxc fi - ensure_profile_loaded - get_lxc_ip - update_script - update_motd_ip - cleanup_lxc } # ============================================================================== diff --git a/misc/core.func b/misc/core.func index ea5a775e7..220281958 100644 --- a/misc/core.func +++ b/misc/core.func @@ -940,7 +940,7 @@ is_verbose_mode() { # # - Detects if script is running in unattended/non-interactive mode # - Checks MODE variable first (primary method) -# - Falls back to legacy flags (PHS_MODE, var_unattended) +# - Falls back to legacy flags (PHS_SILENT, var_unattended) # - Returns 0 (true) if unattended, 1 (false) otherwise # - Used by prompt functions to auto-apply defaults # @@ -984,7 +984,7 @@ is_unattended() { esac # Legacy fallbacks for compatibility - [[ "${PHS_MODE:-}" == "silent" ]] && return 0 + [[ "${PHS_SILENT:-0}" == "1" ]] && return 0 [[ "${var_unattended:-}" =~ ^(yes|true|1)$ ]] && return 0 [[ "${UNATTENDED:-}" =~ ^(yes|true|1)$ ]] && return 0