#compdef sv # completion for runit sv(1) # Christian Neukirchen # 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) services=( /var/service/*(-/N:t) ) (( $#services )) && _values services $services && ret=0 [[ $words[CURRENT] = */* ]] && _directories && ret=0 ;; esac return $ret