github.com/choria-io/go-choria@v0.28.1-0.20240416190746-b3bf9c7d5a45/internal/fs/completion/zsh.template (about) 1 #compdef _choria choria 2 3 zstyle ':completion::complete:choria-*' menu select=2 4 5 _choria() { 6 local command=${words[2]} 7 8 if [ "$command" = "req" ] || [ "$command" = "rpc" ]; then 9 curcontext="${curcontext%:*:*}:choria-${command}" 10 11 local -a clist 12 13 if (( CURRENT == 3 )); then 14 _call_program choria-list-agents choria completion --zsh --list agents | while read -A hline; do 15 clist=($clist "${hline}") 16 done 17 18 _describe -t choria-agents "Choria Agents" clist 19 elif (( CURRENT == 4 )); then 20 _call_program choria-list-actions choria completion --zsh --list actions --agent=${words[3]} | while read -A hline; do 21 clist=($clist "${hline}") 22 done 23 24 _describe -t choria-actions "${words[3]} Actions" clist 25 26 elif (( CURRENT > 4 )); then 27 _call_program choria-list-inputs choria completion --zsh --list inputs --action=${words[4]} --agent=${words[3]} | while read hline; do 28 clist=($clist $hline) 29 done 30 31 _describe -t choria-inputs "${words[4]} Inputs" clist -S = 32 fi 33 34 else 35 local -a cmdlist 36 37 _call_program choria-list-commands choria --completion-bash "${words[@]:1:$CURRENT}" | xargs -n 1 echo | while read -A hline; do 38 cmdlist=($cmdlist "${hline}") 39 done 40 41 curcontext="${curcontext%:*:*}:choria-commands" 42 43 _describe -t choria-commands 'Choria Commands' cmdlist 44 fi 45 }