From 6c456f9383ab0000527b4363bc82fc17850aba18 Mon Sep 17 00:00:00 2001 From: William Hubbs Date: Thu, 7 Dec 2017 11:30:32 -0600 Subject: Add zsh-completion support --- zsh-completion/Makefile | 10 ++++++++++ zsh-completion/_openrc | 7 +++++++ zsh-completion/_rc-service | 27 +++++++++++++++++++++++++++ zsh-completion/_rc-status | 18 ++++++++++++++++++ zsh-completion/_rc-update | 31 +++++++++++++++++++++++++++++++ 5 files changed, 93 insertions(+) create mode 100644 zsh-completion/Makefile create mode 100644 zsh-completion/_openrc create mode 100644 zsh-completion/_rc-service create mode 100644 zsh-completion/_rc-status create mode 100644 zsh-completion/_rc-update (limited to 'zsh-completion') diff --git a/zsh-completion/Makefile b/zsh-completion/Makefile new file mode 100644 index 00000000..9654dbb4 --- /dev/null +++ b/zsh-completion/Makefile @@ -0,0 +1,10 @@ +DIR= ${ZSHCOMPDIR} +CONF= _openrc \ + _rc-service \ + _rc-status \ + _rc-update \ + +MK= ../mk +include ${MK}/os.mk + +include ${MK}/scripts.mk diff --git a/zsh-completion/_openrc b/zsh-completion/_openrc new file mode 100644 index 00000000..3336b44b --- /dev/null +++ b/zsh-completion/_openrc @@ -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: diff --git a/zsh-completion/_rc-service b/zsh-completion/_rc-service new file mode 100644 index 00000000..25c6b4c5 --- /dev/null +++ b/zsh-completion/_rc-service @@ -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: diff --git a/zsh-completion/_rc-status b/zsh-completion/_rc-status new file mode 100644 index 00000000..fd35e9cd --- /dev/null +++ b/zsh-completion/_rc-status @@ -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: diff --git a/zsh-completion/_rc-update b/zsh-completion/_rc-update new file mode 100644 index 00000000..5bd3c85c --- /dev/null +++ b/zsh-completion/_rc-update @@ -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: -- cgit v1.2.3