mockapi/fix_missing_port.sh
2026-03-16 18:40:22 +00:00

74 lines
No EOL
2.2 KiB
Bash

#!/bin/bash
# Add missing PORT variable to .env file
# Run this if PORT is not defined in .env
set -e
echo "=== Fix Missing PORT in .env ==="
echo
APP_DIR="/opt/mockapi"
ENV_FILE="${APP_DIR}/.env"
if [[ ! -f "$ENV_FILE" ]]; then
echo "ERROR: .env file not found: $ENV_FILE"
exit 1
fi
# Check if PORT exists
if grep -q "^PORT=" "$ENV_FILE"; then
CURRENT_PORT=$(grep "^PORT=" "$ENV_FILE" | cut -d'=' -f2)
echo "PORT already exists in .env: $CURRENT_PORT"
# Validate it's numeric
if [[ ! "$CURRENT_PORT" =~ ^[0-9]+$ ]]; then
echo "WARNING: PORT is not numeric: '$CURRENT_PORT'. Fixing to 8000."
sed -i "s/^PORT=.*/PORT=8000/" "$ENV_FILE"
echo "Updated PORT to 8000."
else
echo "PORT is valid numeric value."
fi
else
echo "PORT not found in .env. Adding PORT=8000..."
echo "PORT=8000" >> "$ENV_FILE"
echo "Added PORT=8000 to .env."
fi
# Check if HOST exists
if ! grep -q "^HOST=" "$ENV_FILE"; then
echo "HOST not found in .env. Adding HOST=0.0.0.0..."
echo "HOST=0.0.0.0" >> "$ENV_FILE"
fi
# Check if OAUTH2_ISSUER exists and matches port
CURRENT_PORT=$(grep "^PORT=" "$ENV_FILE" | cut -d'=' -f2)
EXPECTED_ISSUER="http://localhost:${CURRENT_PORT}"
if grep -q "^OAUTH2_ISSUER=" "$ENV_FILE"; then
CURRENT_ISSUER=$(grep "^OAUTH2_ISSUER=" "$ENV_FILE" | cut -d'=' -f2)
if [[ "$CURRENT_ISSUER" != "$EXPECTED_ISSUER" ]]; then
echo "Updating OAUTH2_ISSUER to match port..."
sed -i "s|^OAUTH2_ISSUER=.*|OAUTH2_ISSUER=$EXPECTED_ISSUER|" "$ENV_FILE"
echo "Updated OAUTH2_ISSUER to: $EXPECTED_ISSUER"
else
echo "OAUTH2_ISSUER already matches port."
fi
else
echo "OAUTH2_ISSUER not found. Adding: $EXPECTED_ISSUER"
echo "OAUTH2_ISSUER=$EXPECTED_ISSUER" >> "$ENV_FILE"
fi
echo
echo "=== Updated .env file ==="
echo "Contents of $ENV_FILE:"
echo "------------------------"
grep -E "^(PORT|HOST|OAUTH2_ISSUER)=" "$ENV_FILE"
echo "------------------------"
echo
echo "Note: After updating .env, you may need to:"
echo "1. Update service file with new port (if changed)"
echo "2. Run: sudo systemctl daemon-reload"
echo "3. Run: sudo systemctl restart mockapi"
echo
echo "Use 'sudo bash change_port.sh' to update both .env and service file."