#!/usr/bin/env bash
# Long-lived launcher used by systemd-run --user.
set -euo pipefail
ulimit -n 65535 2>/dev/null || true
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
PID_FILE="$ROOT/.pids"
HOST="${HOST:-0.0.0.0}"
> "$PID_FILE"

cd "$ROOT/nmdpr_consumption/backend"
PORT=6002 node server.js > "$ROOT/nmdpr_consumption/backend.log" 2>&1 &
echo $! >> "$PID_FILE"

cd "$ROOT/nmdpr_consumption/frontend"
CHOKIDAR_USEPOLLING=1 CHOKIDAR_INTERVAL=1000 npm run dev -- --port 6001 --host "$HOST" > "$ROOT/nmdpr_consumption/frontend.log" 2>&1 &
echo $! >> "$PID_FILE"

cd "$ROOT/nmdpr_supply/backend"
.venv/bin/python run_api.py > "$ROOT/nmdpr_supply/backend.log" 2>&1 &
echo $! >> "$PID_FILE"

cd "$ROOT/nmdpr_supply/frontend"
npm run dev -- --port 6003 --host "$HOST" > "$ROOT/nmdpr_supply/frontend.log" 2>&1 &
echo $! >> "$PID_FILE"

cd "$ROOT/dashboard"
CHOKIDAR_USEPOLLING=1 CHOKIDAR_INTERVAL=1000 \
  node node_modules/.bin/vite --port 6010 --host "$HOST" > "$ROOT/dashboard/dashboard.log" 2>&1 &
echo $! >> "$PID_FILE"

# Hold the unit open so KillMode=control-group can stop children on unit stop
exec sleep infinity
