You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
1.0 KiB
32 lines
1.0 KiB
--- zsh-5.3/Completion/Unix/Command/_init_d
|
|
+++ zsh-5.3/Completion/Unix/Command/_init_d
|
|
@@ -1,6 +1,6 @@
|
|
#compdef -p */(init|rc[0-9S]#).d/*
|
|
|
|
-local cmds script
|
|
+local cmds script opts
|
|
local -a flags
|
|
|
|
_compskip=all
|
|
@@ -102,10 +102,18 @@
|
|
|
|
script=$words[1]
|
|
[[ $script = */* ]] || script="$(_init_d_fullpath "$script")"
|
|
+[[ ! -f $script ]] &&
|
|
+ { _message "${words[1]:t} is not an init script" && return }
|
|
+
|
|
|
|
cmds=( $(_init_d_get_cmds) ) || return 1
|
|
|
|
-(( $#cmds )) || zstyle -a ":completion:${curcontext}:commands" commands cmds ||
|
|
- cmds=(start stop)
|
|
+(( $#cmds )) || zstyle -a ":completion:${curcontext}:commands" commands cmds
|
|
+opts=(start stop restart pause zap status ineed iuse needsme usesme broken)
|
|
+
|
|
+# If we didn't get $cmds from a zstyle, then read init script for opts.
|
|
+# If script doesn't specify opts, then default to the standard opts.
|
|
+(( $#cmds )) || cmds=( ${(eQz)${(M)${(f)"$( <$script)"}:#[[:blank:]]#opts=*}#*=} )
|
|
+(( $#cmds )) || cmds=($opts)
|
|
|
|
_arguments -s -A "-*" $flags ':init.d command:_sub_commands $cmds'
|