#!/bin/bash
# SMIG CRM offline shutdown — runs when Daichi is ready to hand off / stop maintaining.
# Stops all background jobs, kills server + ngrok, optionally archives state.
#
# Usage: bash ~/keith-dm-scanner/SHUTDOWN.sh
#
# After running, the ngrok URL is dead, no scans run, no backups, no server.
# The folder ~/keith-dm-scanner/ stays on disk — keith or future-you can pick it up.

set -e

echo "=== unloading all keith.dm launchagents ==="
for plist in com.keith.dm.server com.keith.dm.update com.keith.dm.backup com.keith.dm.focus com.keith.dm.engagers com.keith.dm.enrich com.keith.doc.monitor com.keith.ngrok; do
    plist_path="$HOME/Library/LaunchAgents/${plist}.plist"
    if [ -f "$plist_path" ]; then
        echo "  unloading: $plist"
        launchctl unload "$plist_path" 2>/dev/null || true
    fi
done

echo ""
echo "=== killing any leftover processes ==="
pkill -f "keith-dm-scanner/server.py" 2>/dev/null && echo "  killed server.py" || echo "  no server.py running"
pkill -f "keith-dm-scanner/auto_update.py" 2>/dev/null && echo "  killed auto_update.py" || echo "  no auto_update.py running"
pkill -f "keith-dm-scanner/build_audit.py" 2>/dev/null && echo "  killed build_audit.py" || echo "  no build_audit.py running"
pkill -f "ngrok.*squeamish-sixteen-deceiving" 2>/dev/null && echo "  killed ngrok tunnel" || echo "  no ngrok tunnel running"

echo ""
echo "=== final status check ==="
launchctl list | grep keith.dm && echo "  WARN: some launchagents still listed" || echo "  no keith.dm launchagents loaded"
ps aux | grep -E "keith-dm-scanner|squeamish-sixteen" | grep -v grep && echo "  WARN: leftover processes" || echo "  no leftover processes"

echo ""
echo "=== done ==="
echo "ngrok URL https://squeamish-sixteen-deceiving.ngrok-free.dev is now DEAD"
echo "folder ~/keith-dm-scanner/ is preserved on disk (delete manually if you want)"
echo ""
echo "if you want to re-enable later: launchctl load ~/Library/LaunchAgents/com.keith.dm.*.plist"
