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