pi-system/bin/SubStatus

50 lines
1.8 KiB
Text
Raw Normal View History

#!/bin/bash
# SubStatus — Subagent-Status-Übersicht (W04)
#
# Zeigt alle laufenden tmux-Sessions mit Status + letztem Output.
# Markiert beendete Sessions mit Kill-Befehl.
# Kombiniert tmux ls + intercom list in einer Übersicht.
#
# Nutzung: SubStatus
echo "=== Subagent-Status $(date '+%H:%M:%S') ==="
echo ""
SESSIONS=$(tmux ls -F '#{session_name}|#{session_attached}' 2>/dev/null || echo "")
if [ -z "$SESSIONS" ]; then
echo " (keine aktiven tmux-Sessions)"
echo ""
else
echo "── tmux-Sessions ──────────────────────────────────────────"
FERTIG_SESSIONS=()
while IFS='|' read -r name attached; do
LAST=$(tmux capture-pane -t "$name" -p 2>/dev/null | grep -v '^[[:space:]]*$' | tail -1 | cut -c1-80)
ATTACH_SYMBOL=" "
[ "$attached" = "1" ] && ATTACH_SYMBOL="[W]"
if echo "$LAST" | grep -qE "Pi beendet|Fenster kann geschlossen werden"; then
echo " [FERTIG] $name"
echo " last: $LAST"
FERTIG_SESSIONS+=("$name")
else
echo " $ATTACH_SYMBOL $name"
echo " last: ${LAST:-(leer)}"
fi
echo ""
done <<< "$SESSIONS"
if [ ${#FERTIG_SESSIONS[@]} -gt 0 ]; then
echo "── Fertige Sessions schliessen ─────────────────────────────"
for s in "${FERTIG_SESSIONS[@]}"; do
echo " tmux kill-session -t $s"
done
echo ""
fi
fi
echo "── intercom ────────────────────────────────────────────────"
intercom list 2>/dev/null || echo " (intercom nicht verfügbar)"
echo ""