#!/usr/bin/env bash

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PID_FILE="$SCRIPT_DIR/.pids"

echo "======================================"
echo "  Stopping NMDPR Dashboard Servers"
echo "======================================"

if [ ! -f "$PID_FILE" ]; then
  echo "No .pids file found. Attempting port-based cleanup..."
  # Kill anything on the ports as fallback
  lsof -ti :5000 | xargs kill -9 2>/dev/null && echo "  Killed process on port 5000" || true
  lsof -ti :3000 | xargs kill -9 2>/dev/null && echo "  Killed process on port 3000" || true
  echo "Done."
  exit 0
fi

while IFS= read -r pid; do
  if [ -n "$pid" ] && kill -0 "$pid" 2>/dev/null; then
    kill "$pid" 2>/dev/null && echo "  Stopped PID $pid" || echo "  Could not stop PID $pid"
  else
    echo "  PID $pid not running (already stopped)"
  fi
done < "$PID_FILE"

rm -f "$PID_FILE"
echo "  .pids file removed"
echo "======================================"
echo "  All servers stopped."
echo "======================================"
