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
|
include ${TOP}/Makefile.inc
|
||||||
|
|
||||||
SUBDIR= bash-completion conf.d etc init.d local.d man scripts sh src \
|
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
|
# Build pkgconfig or not
|
||||||
MKPKGCONFIG?= yes
|
MKPKGCONFIG?= yes
|
||||||
|
@ -34,6 +34,7 @@ PICFLAG?= -fPIC
|
|||||||
SYSCONFDIR?= ${PREFIX}/etc
|
SYSCONFDIR?= ${PREFIX}/etc
|
||||||
INITDIR?= ${SYSCONFDIR}/init.d
|
INITDIR?= ${SYSCONFDIR}/init.d
|
||||||
CONFDIR?= ${SYSCONFDIR}/conf.d
|
CONFDIR?= ${SYSCONFDIR}/conf.d
|
||||||
|
CONFMODE?= 0644
|
||||||
LOCALDIR?= ${SYSCONFDIR}/local.d
|
LOCALDIR?= ${SYSCONFDIR}/local.d
|
||||||
SYSCTLDIR?= ${SYSCONFDIR}/sysctl.d
|
SYSCTLDIR?= ${SYSCONFDIR}/sysctl.d
|
||||||
|
|
||||||
@ -67,4 +68,4 @@ DATAMODE?= 0644
|
|||||||
DOCDIR?= ${UPREFIX}/share/doc
|
DOCDIR?= ${UPREFIX}/share/doc
|
||||||
DOCMODE?= 0644
|
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