Add zsh-completion support
This commit is contained in:
parent
d220fc2723
commit
6c456f9383
2
Makefile
2
Makefile
@ -14,7 +14,7 @@ MK= ${TOP}/mk
|
||||
include ${TOP}/Makefile.inc
|
||||
|
||||
SUBDIR= bash-completion conf.d etc init.d local.d man scripts sh src \
|
||||
support sysctl.d
|
||||
support sysctl.d zsh-completion
|
||||
|
||||
# Build pkgconfig or not
|
||||
MKPKGCONFIG?= yes
|
||||
|
@ -34,6 +34,7 @@ PICFLAG?= -fPIC
|
||||
SYSCONFDIR?= ${PREFIX}/etc
|
||||
INITDIR?= ${SYSCONFDIR}/init.d
|
||||
CONFDIR?= ${SYSCONFDIR}/conf.d
|
||||
CONFMODE?= 0644
|
||||
LOCALDIR?= ${SYSCONFDIR}/local.d
|
||||
SYSCTLDIR?= ${SYSCONFDIR}/sysctl.d
|
||||
|
||||
@ -67,4 +68,4 @@ DATAMODE?= 0644
|
||||
DOCDIR?= ${UPREFIX}/share/doc
|
||||
DOCMODE?= 0644
|
||||
|
||||
CONFMODE?= 0644
|
||||
ZSHCOMPDIR?= ${UPREFIX}/share/zsh/site-functions
|
||||
|
10
zsh-completion/Makefile
Normal file
10
zsh-completion/Makefile
Normal file
@ -0,0 +1,10 @@
|
||||
DIR= ${ZSHCOMPDIR}
|
||||
CONF= _openrc \
|
||||
_rc-service \
|
||||
_rc-status \
|
||||
_rc-update \
|
||||
|
||||
MK= ../mk
|
||||
include ${MK}/os.mk
|
||||
|
||||
include ${MK}/scripts.mk
|
7
zsh-completion/_openrc
Normal file
7
zsh-completion/_openrc
Normal file
@ -0,0 +1,7 @@
|
||||
#compdef openrc
|
||||
|
||||
if (( CURRENT == 2 )); then
|
||||
_values "runlevels" $(rc-status --list)
|
||||
fi
|
||||
|
||||
# vim: set et sw=2 ts=2 ft=zsh:
|
27
zsh-completion/_rc-service
Normal file
27
zsh-completion/_rc-service
Normal file
@ -0,0 +1,27 @@
|
||||
#compdef rc-service
|
||||
|
||||
if (( CURRENT == 2 )); then
|
||||
_arguments -s \
|
||||
'(-e --exists)'{-e,--exists}"[tests if the service exists or not]" \
|
||||
'(-l --list)'{-l,--list}'[list all available services]' \
|
||||
'(-r --resolve)'{-r,--resolve}'[resolve the service name to an init script]' \
|
||||
'(-C --nocolor)'{-C,--nocolor}'[Disable color output]' \
|
||||
'(-v --verbose)'{-v,--verbose}'[Run verbosely]' \
|
||||
'(-q --quiet)'{-q,--quiet}'[Run quietly]'
|
||||
_values "service" $(rc-service --list)
|
||||
else
|
||||
case $words[2] in
|
||||
-e|--exists|-r|--resolve)
|
||||
(( CURRENT > 3 )) && return 0
|
||||
_values "service" $(rc-service --list)
|
||||
;;
|
||||
-*)
|
||||
return 0
|
||||
;;
|
||||
*)
|
||||
_values "action" stop start restart describe zap
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# vim: set et sw=2 ts=2 ft=zsh:
|
18
zsh-completion/_rc-status
Normal file
18
zsh-completion/_rc-status
Normal file
@ -0,0 +1,18 @@
|
||||
#compdef rc-status
|
||||
|
||||
_arguments -s \
|
||||
{'(--all)-a','(-a)--all'}'[Show services at all runlevels]' \
|
||||
{'(--crashed)-c','(-c)--crashed'}'[Show crashed services]' \
|
||||
{'(--list)-l','(-l)--list'}'[Show list of runlevels]' \
|
||||
{'(--runlevel)-r','(-r)--runlevel'}'[Show the name of the current runlevel]' \
|
||||
{'(--servicelist)-s','(-s)--servicelist'}'[Show all services]' \
|
||||
{'(--unused)-u','(-u)--unused'}'[Show services not assigned to any run level]' \
|
||||
{'(--help)-h','(-h)--help'}'[Print this help output]' \
|
||||
{'(--nocolor)-C','(-C)--nocolor'}'[Disable color output]' \
|
||||
{'(--version)-V','(-V)--version'}'[Display software version]' \
|
||||
{'(--verbose)-v','(-v)--verbose'}'[Run verbosely]' \
|
||||
{'(--quiet)-q','(-q)--quiet'}'[Run quietly (Does not affect errors)]'
|
||||
|
||||
_values 'runlevels' $(rc-status --list)
|
||||
|
||||
# vim: set et sw=2 ts=2 ft=zsh:
|
31
zsh-completion/_rc-update
Normal file
31
zsh-completion/_rc-update
Normal file
@ -0,0 +1,31 @@
|
||||
#compdef rc-update
|
||||
|
||||
local used_init
|
||||
used_init=(${=${(M)${(f)"$(rc-update show 2>/dev/null)"}:#*|*[a-z]*}% |*})
|
||||
|
||||
if (( CURRENT == 2 )); then
|
||||
_values "rc-update actions" \
|
||||
'add[Add script to a runlevel]' \
|
||||
'del[Delete script from a runlevel]' \
|
||||
'show[Show scripts in a runlevel]' \
|
||||
'-a[Process all runlevels]' \
|
||||
'-s[Stack a runlevel instead of a service]'
|
||||
elif (( CURRENT == 3 )); then
|
||||
case "$words[2]" in
|
||||
add)
|
||||
_values "service" $(rc-service --list)
|
||||
;;
|
||||
del)
|
||||
_values "service" $used_init
|
||||
;;
|
||||
show)
|
||||
_values "runlevels" $(rc-status --list) \
|
||||
'-v[Show all service scripts]' \
|
||||
'--verbose[Show all service scripts]'
|
||||
;;
|
||||
esac
|
||||
elif (( CURRENT == 4 )); then
|
||||
_values "runlevels" $(rc-status --list)
|
||||
fi
|
||||
|
||||
# vim: set et sw=2 ts=2 ft=zsh:
|
Loading…
Reference in New Issue
Block a user