52 lines
1.2 KiB
Bash
52 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
set -eo pipefail
|
|
|
|
ENV_FILE="/var/www/html/.env"
|
|
|
|
if [ ! -f "$ENV_FILE" ]; then
|
|
echo "ERRO: Arquivo .env não encontrado. Crie um .env baseado em .env.example."
|
|
exit 1
|
|
fi
|
|
|
|
REQUIRED_VARS=(
|
|
APP_ENV
|
|
DB_HOST
|
|
DB_DATABASE
|
|
DB_USERNAME
|
|
DB_PASSWORD
|
|
)
|
|
|
|
MISSING_VARS=()
|
|
|
|
# 1. Validação normal das outras variáveis
|
|
for VAR in "${REQUIRED_VARS[@]}"; do
|
|
LINE=$(grep -E "^${VAR}=" "$ENV_FILE" || true)
|
|
VALUE="${LINE#*=}"
|
|
VALUE=$(echo "$VALUE" | tr -d '\r')
|
|
|
|
# Se linha não existe ou valor está vazio → erro
|
|
if [ -z "$LINE" ] || [ -z "$VALUE" ]; then
|
|
MISSING_VARS+=("$VAR")
|
|
fi
|
|
done
|
|
|
|
# 2. Validação ESPECIAL de APP_KEY
|
|
# Regra: APP_KEY precisa EXISTIR, mesmo que vazia
|
|
APP_KEY_LINE=$(grep -E "^APP_KEY=" "$ENV_FILE" || true)
|
|
|
|
if [ -z "$APP_KEY_LINE" ]; then
|
|
echo "ERRO: APP_KEY deve existir no .env (pode ser vazia: APP_KEY=, ou conter uma chave válida)."
|
|
MISSING_VARS+=("APP_KEY")
|
|
fi
|
|
|
|
# 3. Saída final
|
|
if [ "${#MISSING_VARS[@]}" -ne 0 ]; then
|
|
echo "Variáveis obrigatórias ausentes ou inválidas no .env:"
|
|
for VAR in "${MISSING_VARS[@]}"; do
|
|
echo " - $VAR"
|
|
done
|
|
exit 1
|
|
fi
|
|
|
|
exec "$@"
|