fix(scripts): جلوگیری از تولید راز خالی و اجرای اسکریپت پیشنمایش با python3
- gen-env.sh: rand با دو آرگومان صدا زده میشد ولی فقط $1 را میخواند؛ openssl rand -hex بدون تعداد بایت خروجی خالی و کد ۰ میدهد، پس fallback هرگز اجرا نمیشد و .env با رازهای خالی ساخته میشد. حالا تعداد بایت رعایت میشود و اگر مقداری خالی بماند، اسکریپت با خطا متوقف میشود. - preview-mode.sh: python روی اوبونتو ۲۴.۰۴ وجود ندارد (فقط python3).
This commit is contained in:
+7
-1
@@ -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 <<EOF
|
||||
# تولیدشده با scripts/gen-env.sh — این فایل هرگز به گیت نمیرود.
|
||||
# پیش از انتشار واقعی، ADMIN_PASSWORD را به مقداری که به یاد میسپارید اما قوی است تغییر دهید:
|
||||
|
||||
Reference in New Issue
Block a user