#!/bin/bash # Script to add Omada environment variables to existing .env file set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)" ENV_FILE="$PROJECT_ROOT/.env" ENV_EXAMPLE="$PROJECT_ROOT/env.example" if [ ! -f "$ENV_FILE" ]; then echo "❌ .env file not found. Creating from template..." cp "$ENV_EXAMPLE" "$ENV_FILE" echo "✅ Created .env file. Please edit it with your credentials." exit 0 fi echo "Adding Omada environment variables to existing .env file..." # Check if variables already exist OMADA_VARS=( "OMADA_USERNAME" "OMADA_PASSWORD" "OMADA_ID" "OMADA_CONTROLLER_BASE" "OMADA_NORTHBOUND_BASE" "DATABASE_URL" "JWT_SECRET" "PORT" "NODE_ENV" "LOG_LEVEL" "SYNC_JOB_SCHEDULE" "LICENSE_JOB_SCHEDULE" ) # Read existing .env and check what's missing MISSING_VARS=() for var in "${OMADA_VARS[@]}"; do if ! grep -q "^${var}=" "$ENV_FILE" 2>/dev/null; then MISSING_VARS+=("$var") fi done if [ ${#MISSING_VARS[@]} -eq 0 ]; then echo "✅ All Omada environment variables are already present in .env" exit 0 fi echo "Found ${#MISSING_VARS[@]} missing variable(s): ${MISSING_VARS[*]}" echo "" # Append missing variables from template echo "" >> "$ENV_FILE" echo "# ============================================" >> "$ENV_FILE" echo "# Omada Cloud Integration Variables" >> "$ENV_FILE" echo "# ============================================" >> "$ENV_FILE" # Extract and add missing variables from env.example while IFS= read -r line; do # Skip comments and empty lines [[ "$line" =~ ^[[:space:]]*# ]] && continue [[ -z "${line// }" ]] && continue # Extract variable name var_name=$(echo "$line" | cut -d'=' -f1) # Check if this variable is missing if [[ " ${MISSING_VARS[@]} " =~ " ${var_name} " ]]; then echo "$line" >> "$ENV_FILE" fi done < "$ENV_EXAMPLE" echo "✅ Added missing Omada environment variables to .env" echo "" echo "📝 Please edit .env and fill in the actual values for:" for var in "${MISSING_VARS[@]}"; do echo " - $var" done echo ""