zsh/compdef/_sv
2023-01-23 15:32:16 +01:00

51 lines
1.1 KiB
Plaintext

#compdef sv
# completion for runit sv(1)
# Leah Neukirchen <leah@vuxu.org>
# runit 2.1.1, services in /var/service are completed by default
local ret=1 services
_arguments \
'-v[verbose]' \
'-w[wait]:seconds' \
'1: :->cmds' \
'*:: :->args' && ret=0
case $state in
cmds)
_values "sv command" \
status \
up \
down \
once \
pause cont hup alarm interrupt quit 1 2 term kill \
exit
# above allow one-character shortcuts, complete these
[[ $words[CURRENT] = [sudopchaiq12tke] ]] ||
_values "sv command" \
start \
stop \
restart \
shutdown \
force-stop \
force-reload \
force-restart \
force-shutdown \
check
ret=0;;
args)
if [[ $BUFFER == "sudo "*
|| $BUFFER == "doas "*
|| $BUFFER == "su "*-c* ]] then
services=( /var/service/*(-/N:t) )
else
services=( ${SVDIR:-/var/service}/*(-/N:t) )
fi
(( $#services )) && _values services $services && ret=0
[[ $words[CURRENT] = */* ]] && _directories && ret=0
;;
esac
return $ret