From 8600d2d4a3a974b9fe396571b9b6c3c4527a7591 Mon Sep 17 00:00:00 2001 From: aramesh-site deploy Date: Sat, 26 Sep 2026 21:43:59 +0000 Subject: [PATCH] =?UTF-8?q?fix(scripts):=20=D8=AC=D9=84=D9=88=DA=AF=DB=8C?= =?UTF-8?q?=D8=B1=DB=8C=20=D8=A7=D8=B2=20=D8=AA=D9=88=D9=84=DB=8C=D8=AF=20?= =?UTF-8?q?=D8=B1=D8=A7=D8=B2=20=D8=AE=D8=A7=D9=84=DB=8C=20=D9=88=20=D8=A7?= =?UTF-8?q?=D8=AC=D8=B1=D8=A7=DB=8C=20=D8=A7=D8=B3=DA=A9=D8=B1=DB=8C=D9=BE?= =?UTF-8?q?=D8=AA=20=D9=BE=DB=8C=D8=B4=E2=80=8C=D9=86=D9=85=D8=A7=DB=8C?= =?UTF-8?q?=D8=B4=20=D8=A8=D8=A7=20python3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - gen-env.sh: rand با دو آرگومان صدا زده می‌شد ولی فقط $1 را می‌خواند؛ openssl rand -hex بدون تعداد بایت خروجی خالی و کد ۰ می‌دهد، پس fallback هرگز اجرا نمی‌شد و .env با رازهای خالی ساخته می‌شد. حالا تعداد بایت رعایت می‌شود و اگر مقداری خالی بماند، اسکریپت با خطا متوقف می‌شود. - preview-mode.sh: python روی اوبونتو ۲۴.۰۴ وجود ندارد (فقط python3). --- scripts/gen-env.sh | 8 +++++++- scripts/preview-mode.sh | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) 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 <