Add support for user services in _sv
This commit is contained in:
parent
d74011b8dc
commit
fc26efcafd
48
compdef/_sv
Normal file
48
compdef/_sv
Normal file
|
@ -0,0 +1,48 @@
|
|||
#compdef sv
|
||||
|
||||
# completion for runit sv(1)
|
||||
# Christian Neukirchen <chneukirchen@gmail.com>
|
||||
# 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 [[ $UID == 0 || $BUFFER == sudo* ]] then
|
||||
services=( /var/service/*(-/N:t) )
|
||||
else
|
||||
services=( ~/.service/*(-/N) )
|
||||
fi
|
||||
(( $#services )) && _values services $services && ret=0
|
||||
[[ $words[CURRENT] = */* ]] && _directories && ret=0
|
||||
;;
|
||||
esac
|
||||
|
||||
return $ret
|
Loading…
Reference in a new issue