74 lines
No EOL
2.2 KiB
Bash
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." |