diff --git a/scripts/gen-env.sh b/scripts/gen-env.sh index c22fa25..3e3a152 100644 --- a/scripts/gen-env.sh +++ b/scripts/gen-env.sh @@ -15,13 +15,19 @@ if [ -f .env ] && [ "${1:-}" != "--force" ]; then exit 1 fi -rand() { openssl rand -"$1" 2>/dev/null || head -c 64 /dev/urandom | od -An -tx1 | tr -d ' \n'; } +rand() { local bytes="${2:-32}"; openssl rand -hex "$bytes" 2>/dev/null || head -c "$bytes" /dev/urandom | od -An -tx1 | tr -d ' \n'; } SECRET_KEY="$(rand hex 48)" POSTGRES_PASSWORD="$(rand hex 16)" MINIO_ROOT_PASSWORD="$(rand hex 16)" ADMIN_PASSWORD="$(rand hex 12)" +# بدون این بررسی، شکست تولید تصادفی به .env خالی می‌رسد و بعداً با خطای مبهم +# ${VAR:?} در compose ظاهر می‌شود. +for v in SECRET_KEY POSTGRES_PASSWORD MINIO_ROOT_PASSWORD ADMIN_PASSWORD; do + [ -n "${!v}" ] || { echo "خطا: تولید مقدار تصادفی برای $v ناموفق بود" >&2; exit 1; } +done + cat > .env <