39 lines
1.1 KiB
Plaintext
39 lines
1.1 KiB
Plaintext
#compdef hush
|
|
|
|
_hush() {
|
|
local state
|
|
|
|
_arguments \
|
|
'1: :->command' \
|
|
'*: :->args' \
|
|
&& return 0
|
|
|
|
case $state in
|
|
command)
|
|
local commands=(
|
|
'daemon:Start the daemon in the foreground'
|
|
'start:Begin a new recording'
|
|
'stop:Stop recording and transcribe'
|
|
'abort:Cancel and discard the current recording'
|
|
'toggle:Start recording if idle, stop if recording'
|
|
'status:Show daemon state and recording duration'
|
|
'latency-test:Run a full STT+LLM round-trip latency test'
|
|
'setup:Interactive configuration wizard'
|
|
'show:Display current configuration'
|
|
)
|
|
_describe 'command' commands
|
|
;;
|
|
args)
|
|
case $words[2] in
|
|
show)
|
|
_arguments \
|
|
'--plain[Show plain key=value pairs instead of a table]' \
|
|
'--json[Show raw JSON output]'
|
|
;;
|
|
esac
|
|
;;
|
|
esac
|
|
}
|
|
|
|
_hush "$@"
|