#!/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"