#!/bin/sh set -eu runtime_config=$(jq -cn \ --arg mapboxAccessToken "${DRAINAGE_MAPBOX_ACCESS_TOKEN:-}" \ --arg mapUrl "${DRAINAGE_MAP_URL:-https://geoserver.waternetwork.cn/geoserver}" \ --arg geoserverWorkspace "${DRAINAGE_GEOSERVER_WORKSPACE:-wenzhou}" \ --arg agentApiBaseUrl "${DRAINAGE_AGENT_API_BASE_URL:-http://127.0.0.1:8787}" \ --arg enableDevPanel "${DRAINAGE_ENABLE_DEV_PANEL:-false}" \ --arg enableMsw "${DRAINAGE_ENABLE_MSW:-false}" \ '{ DRAINAGE_MAPBOX_ACCESS_TOKEN: $mapboxAccessToken, DRAINAGE_MAP_URL: $mapUrl, DRAINAGE_GEOSERVER_WORKSPACE: $geoserverWorkspace, DRAINAGE_AGENT_API_BASE_URL: $agentApiBaseUrl, DRAINAGE_ENABLE_DEV_PANEL: $enableDevPanel, DRAINAGE_ENABLE_MSW: $enableMsw }') printf 'globalThis.__DRAINAGE_CONFIG__ = %s;\n' "$runtime_config" > /srv/runtime-config.js node /usr/local/lib/drainage-frontend/edge-tts-server.cjs & tts_pid=$! "$@" & app_pid=$! terminate() { kill "$app_pid" "$tts_pid" 2>/dev/null || true } trap terminate INT TERM status=0 wait -n "$app_pid" "$tts_pid" || status=$? terminate wait "$app_pid" 2>/dev/null || true wait "$tts_pid" 2>/dev/null || true exit "$status"