Add zsh-completion support
This commit is contained in:
		
							
								
								
									
										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:
 | 
			
		||||
		Reference in New Issue
	
	Block a user