You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

27 lines
1.2 KiB

#!/bin/sh
# تولید /config.js از متغیرهای محیط — «منبع واحدِ env در runtime».
#
# nginx رسمی هر اسکریپت اجراییِ /docker-entrypoint.d/*.sh را پیش از استارت سرور
# اجرا می‌کند. این‌جا مقادیر env (که از .env.production → docker-compose می‌آیند)
# را در window.__ENV__ می‌نویسیم تا app آن‌ها را در runtime بخواند — بدون rebuild.
#
# توجه: کلید Soniox از این مسیر نمی‌آید — در کد هاردکد شده است (نه env، نه API).
set -eu
TARGET="/usr/share/nginx/html/config.js"
# پیش‌فرض‌ها (هم‌راستا با fallbackهای کد). با env قابل override.
VITE_API_BASE_URL="${VITE_API_BASE_URL:-/api}"
# escape امنِ مقادیر برای قرارگیری داخل رشتهٔ JS (backslash، کوتیشن، خط جدید).
js_escape() {
printf '%s' "$1" | sed -e 's/\\/\\\\/g' -e "s/'/\\\\'/g" | tr '\n' ' '
}
{
echo "window.__ENV__ = {"
echo " VITE_API_BASE_URL: '$(js_escape "$VITE_API_BASE_URL")',"
echo "};"
} > "$TARGET"
echo "[40-config-js] wrote runtime env to $TARGET"