#!/bin/sh
# ocd-waybar-ctl: send a command to the ocd-waybar daemon.
# Usage: ocd-waybar-ctl {advance|lock|poll|quit}
# wired into the waybar custom/ocd module as on-click / on-click-right.

set -eu
cmd="${1:-advance}"
sock="${XDG_RUNTIME_DIR:-/run/user/$(id -u)}/ocd-waybar.sock"

if [ "$#" -gt 0 ]; then
  cmd="$1"
fi

case "$cmd" in
  advance|lock|poll|quit) ;;
  *) echo "ocd-waybar-ctl: unknown command '$cmd'" >&2; exit 2 ;;
esac

if [ ! -S "$sock" ]; then
  echo "ocd-waybar-ctl: daemon socket not found at $sock" >&2
  exit 1
fi

printf '%s\n' "$cmd" | socat - UNIX-SENDTO:"$sock" 2>/dev/null \
  || printf '%s\n' "$cmd" | nc -U -u -w1 "$sock" 2>/dev/null \
  || python3 - "$sock" "$cmd" <<'PY'
import socket, sys
s = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
s.sendto((sys.argv[2] + "\n").encode(), sys.argv[1])
PY