#!/usr/bin/env bash # wm-kill: Kill running wm-port agent sessions. # # Usage: # wm-kill # kill session for a specific task # wm-kill --all # kill all wm-port sessions set -euo pipefail MOUNT="${OLLIE:-$HOME/mnt/ollie}" ROOT="$(cd "$(dirname "$0")/../.." && pwd)" TOOLS="$ROOT/tools/wm-port" source "$TOOLS/task-map.sh" die() { printf 'wm-kill: %s\n' "$*" >&2; exit 1; } if [ "${1:-}" = "--all" ]; then killed=0 while IFS=$'\t' read -r sid state cwd backend model; do [[ "$sid" == wm-port-* ]] || continue echo "kill" > "$MOUNT/s/$sid/ctl" 2>/dev/null && { printf 'Killed %s\n' "$sid" (( ++killed )) } done < <(cat "$MOUNT/s/idx" 2>/dev/null) [ "$killed" -eq 0 ] && echo "No active wm-port sessions." exit 0 fi [ $# -lt 1 ] && die "usage: wm-kill | --all" tid="$1" sid="wm-port-${tid}" if [ -d "$MOUNT/s/$sid" ]; then echo "kill" > "$MOUNT/s/$sid/ctl" 2>/dev/null printf '\033[1;31mKilled session %s\033[0m\n' "$sid" else echo "No active session for task $tid" fi