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.
This commit is contained in:
Chuck
2026-01-11 12:35:11 -05:00
parent a05c503064
commit f2db1d2910
2 changed files with 14 additions and 12 deletions

View File

@@ -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

View File

@@ -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