This repository has been archived on 2026-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
anvillm/scripts/anvillm-notify

44 lines
1.1 KiB
Bash
Executable File

#!/bin/sh
# React to anvillm events and notify on running->idle transitions
get_alias() {
9p read "anvillm/$1/alias" 2>/dev/null
}
get_cwd() {
9p read "anvillm/$1/cwd" 2>/dev/null
}
get_summary() {
9p read "anvillm/$1/summary" 2>/dev/null
}
9p read anvillm/events | while read -r line; do
type=$(echo "$line" | jq -r '.type // empty')
case "$type" in
StateChange)
old_state=$(echo "$line" | jq -r '.data.old_state // empty')
new_state=$(echo "$line" | jq -r '.data.new_state // empty')
agent=$(echo "$line" | jq -r '.source // empty')
if [ "$old_state" = "running" ] && [ "$new_state" = "idle" ]; then
name=$(get_alias "$agent")
[ -z "$name" ] && name=$agent
cwd=$(get_cwd "$agent")
heading=$(basename "$cwd")
summary=$(get_summary "$agent")
[ -z "$summary" ] && summary="completed"
notify-send "$heading ($name)" "$summary"
fi
;;
UserRecv)
from=$(echo "$line" | jq -r '.data.from // empty')
subject=$(echo "$line" | jq -r '.data.subject // empty')
body=$(echo "$line" | jq -r '.data.body // empty')
notify-send "Message from $from" "$subject"
;;
esac
done