arcadiasuite/plus/docker/check-env.sh

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