blob: d9f1f9c41355ee7d6e6006b2a2cfe724a47fd0e9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
#compdef Start Restart Stop Reload
## vim:ft=zsh
typeset arguments file bang
typeset action=${service:l}
typeset what='(st(art|op|atus)|(force-|)re(start|load)|debug_(up|down)|dump(|_stats)|add|delete|clean|list)'
typeset -a scripts
# Most of the loop's content has been taken from the _init_d
# completion function provided with zsh
for file in /etc/init.d/*(*); {
read -u0 -k2 bang < $file && [[ $bang == '#!' ]] &&
[[ ${${(j:|:s:|:)${(M)${(f)"$(< $file)"}:#[[:blank:]]#(\'|)${~what}([[:blank:]]#\|[[:blank:]]#${~what})#(\'|)\)}}//[^-a-z_]} == *$action* ]] &&
scripts+=${file##*/}
}
_wanted script expl script compadd $scripts
|