#!/bin/bash
# dsh-launcher-stop: disconnect the SSH tunnel (remote dsh keeps running).
STATE_DIR=~/.dsh-launcher
PIDFILE="$STATE_DIR/tunnel.pid"
META="$STATE_DIR/tunnel.json"

host=""
[ -f "$META" ] && host=$(python3 -c "import json;print(json.load(open('$META')).get('host',''))" 2>/dev/null)

if [ -f "$PIDFILE" ]; then
  pid=$(tr -dc '0-9' < "$PIDFILE")
  if [ -n "$pid" ] && ps -p "$pid" >/dev/null 2>&1; then
    kill "$pid" 2>/dev/null
    echo "隧道已断开（${host:-未知主机}, ssh pid $pid）"
  else
    echo "没有活跃隧道（清理残留 pidfile）"
  fi
  rm -f "$PIDFILE"
else
  echo "没有活跃隧道"
fi

sleep 1
if nc -z 127.0.0.1 3081 2>/dev/null; then
  echo "注意：3081 仍被占用（可能是外部隧道）"
else
  echo "3081 已释放；服务器上的 dsh 仍在跑，下次打开域名秒连"
fi
