From f2db1d2910110d777ea892e6ac04c82ecb00c9e9 Mon Sep 17 00:00:00 2001 From: Chuck Date: Sun, 11 Jan 2026 12:35:11 -0500 Subject: [PATCH] fix: Explicitly pass ASSUME_YES to install_wifi_monitor.sh and simplify package installation Fix WiFi monitor installation failing at step 8.5: 1. Explicitly pass ASSUME_YES environment variable when calling install_wifi_monitor.sh from first_time_install.sh to ensure non-interactive mode is respected 2. Simplify package installation logic in install_wifi_monitor.sh: - Use apt directly when running as root (from first_time_install.sh) - Use sudo when running as regular user (direct script execution) - Always install packages automatically in non-interactive mode - Only prompt in true interactive mode (TTY available and ASSUME_YES not set) This ensures packages are installed automatically when running via one-shot installer or with -y flag, preventing installation failures at step 8.5. --- first_time_install.sh | 3 ++- scripts/install/install_wifi_monitor.sh | 23 ++++++++++++----------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/first_time_install.sh b/first_time_install.sh index dbc6fc79..d533c2ff 100644 --- a/first_time_install.sh +++ b/first_time_install.sh @@ -982,7 +982,8 @@ if [ -f "$PROJECT_ROOT_DIR/scripts/install/install_wifi_monitor.sh" ]; then if [ ! -f "/etc/systemd/system/ledmatrix-wifi-monitor.service" ] || [ "$NEEDS_UPDATE" = true ]; then echo "Installing/updating WiFi monitor service..." - bash "$PROJECT_ROOT_DIR/scripts/install/install_wifi_monitor.sh" + # Pass ASSUME_YES to ensure non-interactive mode + ASSUME_YES="$ASSUME_YES" LEDMATRIX_ASSUME_YES="$ASSUME_YES" bash "$PROJECT_ROOT_DIR/scripts/install/install_wifi_monitor.sh" # Harden service file permissions (if service was created) if [ -f "/etc/systemd/system/ledmatrix-wifi-monitor.service" ]; then diff --git a/scripts/install/install_wifi_monitor.sh b/scripts/install/install_wifi_monitor.sh index e964df87..a5b43771 100755 --- a/scripts/install/install_wifi_monitor.sh +++ b/scripts/install/install_wifi_monitor.sh @@ -47,18 +47,19 @@ if [ ${#MISSING_PACKAGES[@]} -gt 0 ]; then echo "" # Check for non-interactive mode (ASSUME_YES or LEDMATRIX_ASSUME_YES) + # If called from installation script, always install packages automatically ASSUME_YES=${ASSUME_YES:-${LEDMATRIX_ASSUME_YES:-0}} - if [ "$ASSUME_YES" = "1" ]; then - echo "Non-interactive mode: installing required packages..." - sudo apt update - sudo apt install -y "${MISSING_PACKAGES[@]}" - echo "✓ Packages installed" - elif [ ! -t 0 ]; then - # Non-interactive mode detected (no TTY) but ASSUME_YES not set - echo "⚠ Non-interactive mode detected but ASSUME_YES not set." - echo " Installing packages automatically (required for WiFi setup)..." - sudo apt update - sudo apt install -y "${MISSING_PACKAGES[@]}" + if [ "$ASSUME_YES" = "1" ] || [ ! -t 0 ]; then + # Non-interactive mode - install packages automatically + # Use apt directly if running as root, otherwise use sudo + echo "Installing required packages automatically..." + if [ "$EUID" -eq 0 ]; then + apt update + apt install -y "${MISSING_PACKAGES[@]}" + else + sudo apt update + sudo apt install -y "${MISSING_PACKAGES[@]}" + fi echo "✓ Packages installed" else # Interactive mode - ask user