Files
playbook/codex/skills/thirdparty/brainstorming/scripts/stop-server.sh
T
cshandClaude Opus 4.7 b3df41205d ♻️ refactor(skills): separate thirdparty skills into thirdparty/ subdirectory
- Move all third-party skills from codex/skills/ to codex/skills/thirdparty/
- Move .sources/ to codex/skills/thirdparty/.sources/
- Delete systematic-debugging/CREATION-LOG.md (internal dev note, not skill content)
- Update sync_thirdparty_skills.sh paths and conflict detection
- Update thirdparty_skills.json source_list paths
- Update install_skills_action to collect from both own and thirdparty dirs,
  logging [thirdparty] tag for third-party installs
- Update SKILLS.md directory structure docs
- Update tests to reflect new paths

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 14:50:02 +08:00

57 lines
1.3 KiB
Bash

#!/usr/bin/env bash
# Stop the brainstorm server and clean up
# Usage: stop-server.sh <session_dir>
#
# Kills the server process. Only deletes session directory if it's
# under /tmp (ephemeral). Persistent directories (.superpowers/) are
# kept so mockups can be reviewed later.
SESSION_DIR="$1"
if [[ -z "$SESSION_DIR" ]]; then
echo '{"error": "Usage: stop-server.sh <session_dir>"}'
exit 1
fi
STATE_DIR="${SESSION_DIR}/state"
PID_FILE="${STATE_DIR}/server.pid"
if [[ -f "$PID_FILE" ]]; then
pid=$(cat "$PID_FILE")
# Try to stop gracefully, fallback to force if still alive
kill "$pid" 2>/dev/null || true
# Wait for graceful shutdown (up to ~2s)
for i in {1..20}; do
if ! kill -0 "$pid" 2>/dev/null; then
break
fi
sleep 0.1
done
# If still running, escalate to SIGKILL
if kill -0 "$pid" 2>/dev/null; then
kill -9 "$pid" 2>/dev/null || true
# Give SIGKILL a moment to take effect
sleep 0.1
fi
if kill -0 "$pid" 2>/dev/null; then
echo '{"status": "failed", "error": "process still running"}'
exit 1
fi
rm -f "$PID_FILE" "${STATE_DIR}/server.log"
# Only delete ephemeral /tmp directories
if [[ "$SESSION_DIR" == /tmp/* ]]; then
rm -rf "$SESSION_DIR"
fi
echo '{"status": "stopped"}'
else
echo '{"status": "not_running"}'
fi