aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/_openrc')
-rw-r--r--src/_openrc85
1 files changed, 85 insertions, 0 deletions
diff --git a/src/_openrc b/src/_openrc
new file mode 100644
index 0000000..84ecbc8
--- /dev/null
+++ b/src/_openrc
@@ -0,0 +1,85 @@
+#compdef rc-update rc-status rc rc-service
+
+# openrc-0.12.4
+
+local gentoo_runlevels
+gentoo_runlevels=(/etc/runlevels/*(:t))
+
+case "$service" in
+ 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" /etc/init.d/*~*.sh(:t)
+ else
+ case $words[2] in
+ -e|--exists|-r|--resolve)
+ (( CURRENT > 3 )) && return 0
+ _values "service" /etc/init.d/*~*.sh(:t)
+ ;;
+ -*)
+ return 0
+ ;;
+ *)
+ _values "action" stop start restart describe zap
+ ;;
+ esac
+ fi
+ ;;
+ rc-update)
+ local used_init
+ used_init=(${=${(M)${(f)"$(/sbin/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 lanched at a runlevel]' \
+ '-a[Add script to a runlevel]' \
+ '-d[Delete script from a runlevel]' \
+ '-s[Show scripts lanched at a runlevel]'
+ elif (( CURRENT == 3 )); then
+ case "$words[2]" in
+ add|-a)
+ _values "service" /etc/init.d/*~*.sh(:t)
+ ;;
+ del|-d)
+ _values "service" $used_init
+ ;;
+ show|-s)
+ _values "runlevels" $gentoo_runlevels \
+ '-v[Show all init scripts]' \
+ '--verbose[Show all init scripts]'
+ ;;
+ esac
+ elif (( CURRENT == 4 )); then
+ _values "runlevels" $gentoo_runlevels
+ fi
+ ;;
+ 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' $gentoo_runlevels
+ ;;
+ rc)
+ if (( CURRENT == 2 )); then
+ _values "runlevels" $gentoo_runlevels
+ fi
+ ;;
+esac