61 lines
2.6 KiB
Bash
61 lines
2.6 KiB
Bash
#!/bin/sh
|
|
set -eu
|
|
|
|
runtime_config=$(jq -cn \
|
|
--arg authMode "${TJWATER_AUTH_MODE:-required}" \
|
|
--arg keycloakIssuer "${TJWATER_KEYCLOAK_ISSUER:-}" \
|
|
--arg keycloakClientId "${TJWATER_KEYCLOAK_CLIENT_ID:-next-tjwater}" \
|
|
--arg mapboxAccessToken "${TJWATER_MAPBOX_ACCESS_TOKEN:-}" \
|
|
--arg tiandituToken "${TJWATER_TIANDITU_TOKEN:-}" \
|
|
--arg mapUrl "${TJWATER_MAP_URL:-https://geoserver.waternetwork.cn/geoserver}" \
|
|
--arg geoserverWorkspace "${TJWATER_GEOSERVER_WORKSPACE:-tjwater_next}" \
|
|
--arg serverApiBaseUrl "${TJWATER_SERVER_API_BASE_URL:-http://127.0.0.1:8000}" \
|
|
--arg agentApiBaseUrl "${TJWATER_AGENT_API_BASE_URL:-http://127.0.0.1:8787}" \
|
|
--arg workbenchRuntimeMode "${TJWATER_WORKBENCH_RUNTIME_MODE:-auto}" \
|
|
--arg peripheralSampleApiBaseUrl "${TJWATER_PERIPHERAL_SAMPLE_API_BASE_URL:-}" \
|
|
--arg peripheralSampleTimeMode "${TJWATER_PERIPHERAL_SAMPLE_TIME_MODE:-demo}" \
|
|
--arg peripheralSampleDemoStart "${TJWATER_PERIPHERAL_SAMPLE_DEMO_START:-2026-09-17T00:00:00Z}" \
|
|
--arg peripheralSampleDemoEnd "${TJWATER_PERIPHERAL_SAMPLE_DEMO_END:-2026-09-17T12:00:00Z}" \
|
|
--arg peripheralSampleRecentHours "${TJWATER_PERIPHERAL_SAMPLE_RECENT_HOURS:-8}" \
|
|
--arg enableDevPanel "${TJWATER_ENABLE_DEV_PANEL:-false}" \
|
|
--arg enableMsw "${TJWATER_ENABLE_MSW:-false}" \
|
|
'{
|
|
TJWATER_AUTH_MODE: $authMode,
|
|
TJWATER_KEYCLOAK_ISSUER: $keycloakIssuer,
|
|
TJWATER_KEYCLOAK_CLIENT_ID: $keycloakClientId,
|
|
TJWATER_MAPBOX_ACCESS_TOKEN: $mapboxAccessToken,
|
|
TJWATER_TIANDITU_TOKEN: $tiandituToken,
|
|
TJWATER_MAP_URL: $mapUrl,
|
|
TJWATER_GEOSERVER_WORKSPACE: $geoserverWorkspace,
|
|
TJWATER_SERVER_API_BASE_URL: $serverApiBaseUrl,
|
|
TJWATER_AGENT_API_BASE_URL: $agentApiBaseUrl,
|
|
TJWATER_WORKBENCH_RUNTIME_MODE: $workbenchRuntimeMode,
|
|
TJWATER_PERIPHERAL_SAMPLE_API_BASE_URL: $peripheralSampleApiBaseUrl,
|
|
TJWATER_PERIPHERAL_SAMPLE_TIME_MODE: $peripheralSampleTimeMode,
|
|
TJWATER_PERIPHERAL_SAMPLE_DEMO_START: $peripheralSampleDemoStart,
|
|
TJWATER_PERIPHERAL_SAMPLE_DEMO_END: $peripheralSampleDemoEnd,
|
|
TJWATER_PERIPHERAL_SAMPLE_RECENT_HOURS: $peripheralSampleRecentHours,
|
|
TJWATER_ENABLE_DEV_PANEL: $enableDevPanel,
|
|
TJWATER_ENABLE_MSW: $enableMsw
|
|
}')
|
|
|
|
printf 'globalThis.__TJWATER_CONFIG__ = %s;\n' "$runtime_config" > /srv/runtime-config.js
|
|
|
|
node /usr/local/lib/tjwater-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"
|