summaryrefslogtreecommitdiff
path: root/Completion/Unix/Command/_init_d
diff options
context:
space:
mode:
authorAxel Beckert <abe@deuxchevaux.org>2016-12-04 04:32:03 +0100
committerAxel Beckert <abe@deuxchevaux.org>2016-12-04 04:32:03 +0100
commit3e439c3863f14c82f70666804c8570a13b3732e6 (patch)
tree07036c43e0f3f9242bb6dd42cd2a849ec8ea8aca /Completion/Unix/Command/_init_d
parent2aedc4b88fd0e87b89583983951b04b96f48efd3 (diff)
parent7b7e84f0815ed22a0ee348a217776529035dccf3 (diff)
downloadzsh-3e439c3863f14c82f70666804c8570a13b3732e6.tar.gz
zsh-3e439c3863f14c82f70666804c8570a13b3732e6.zip
Merge tag 'zsh-5.2-test-1' into debian
Diffstat (limited to 'Completion/Unix/Command/_init_d')
-rw-r--r--Completion/Unix/Command/_init_d22
1 files changed, 20 insertions, 2 deletions
diff --git a/Completion/Unix/Command/_init_d b/Completion/Unix/Command/_init_d
index bbf62fc0d..03af2dc9b 100644
--- a/Completion/Unix/Command/_init_d
+++ b/Completion/Unix/Command/_init_d
@@ -1,6 +1,7 @@
#compdef -p */(init|rc[0-9S]#).d/*
local cmds script
+local -a flags
_compskip=all
@@ -41,6 +42,23 @@ if [[ $OSTYPE = freebsd* ]]; then
return 0
}
+elif [[ $OSTYPE = openbsd* ]]; then
+ (( $+functions[_init_d_fullpath] )) ||
+ _init_d_fullpath() {
+ echo /etc/rc.d/$1
+ return 0
+ }
+
+ (( $+functions[_init_d_get_cmds] )) ||
+ _init_d_get_cmds() {
+ local -a cmds disabled
+
+ cmds=(start stop reload restart check)
+ disabled=(${${${(M)${(f)"$(< $script)"}:#rc_(${(~j:|:)cmds})=NO}#rc_}%=NO})
+ echo ${cmds:|disabled}
+ }
+
+ flags=('-d[print debug information]' '-f[forcibly start the daemon]')
else
(( $+functions[_init_d_fullpath] )) ||
_init_d_fullpath() {
@@ -85,9 +103,9 @@ fi
script=$words[1]
[[ $script = */* ]] || script="$(_init_d_fullpath "$script")"
-cmds=( $(_init_d_get_cmds) ) || return
+cmds=( $(_init_d_get_cmds) ) || return 1
(( $#cmds )) || zstyle -a ":completion:${curcontext}:commands" commands cmds ||
cmds=(start stop)
-_sub_commands $cmds
+_arguments -s -A "-*" $flags ':init.d command:_sub_commands $cmds'