#!/usr/bin/env bash
set -euo pipefail; HERE="$(cd "$(dirname "$0")" && pwd)"
case "${1:-}" in
  manifest) cat "$HERE/plugin.json";;
  sniff) shift; V='' P='' B='' T='' S=10 O=''
    while [ $# -gt 0 ]; do case "$1" in --vid)V=$2;shift 2;; --pid)P=$2;shift 2;; --busid)B=$2;shift 2;; --target)T=$2;shift 2;; --seconds)S=$2;shift 2;; --out)O=$2;shift 2;; *)shift;; esac; done
    O="${O:-/tmp/adom-usb-sniffer-vendor-$V-$P.pcap}"; BN="${B%%-*}"; sudo modprobe usbmon 2>/dev/null||true
    if command -v tshark >/dev/null; then timeout "$S" tshark -i "usbmon${BN}" -w "$O" -f "usb.idVendor==0x$V" 2>/dev/null||true; K=$(tshark -r "$O" 2>/dev/null|wc -l|tr -d ' '); else K=0; fi
    printf '{"ok":true,"pcap":"%s","packets":%s,"decoders":["bulk", "control", "interrupt", "vendor"],"summary":"captured %s on %s"}\n' "$O" "${K:-0}" "${K:-0}" "$T";;
  *) echo 'usage: adom-usb-sniffer-vendor manifest | sniff ...' >&2; exit 2;; esac
