#!/usr/bin/env bash
set -euo pipefail

ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
TMP_DIR="$ROOT/.tmp/operator-demo"

stop_pid_file() {
  local file="$1"
  local label="$2"
  if [[ ! -f "$file" ]]; then
    echo "OK: no $label PID file"
    return 0
  fi
  local pid
  pid="$(cat "$file")"
  if [[ "$pid" =~ ^[0-9]+$ ]] && kill -0 "$pid" 2>/dev/null; then
    echo "INFO: stopping $label pid $pid"
    kill "$pid" 2>/dev/null || true
    for _ in $(seq 1 40); do
      if ! kill -0 "$pid" 2>/dev/null; then
        break
      fi
      sleep 0.1
    done
    if kill -0 "$pid" 2>/dev/null; then
      echo "WARN: $label pid $pid still running; sending SIGKILL"
      kill -9 "$pid" 2>/dev/null || true
    fi
  else
    echo "OK: $label pid not running"
  fi
  rm -f "$file"
}

stop_pid_file "$TMP_DIR/dashboard.pid" "dashboard"
stop_pid_file "$TMP_DIR/gateway.pid" "api gateway"
rm -f "$TMP_DIR/demo.env"

echo "JARVIS operator demo stopped."
