summaryrefslogtreecommitdiff
path: root/etc/completions/_initd
blob: 52dd91b0202e6fc1151723fb0ef52d938c040f56 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#compdef Start Restart Stop Reload
## vim:ft=zsh

typeset arguments file bang
typeset action=${service:l}
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 == '#!' ]] &&
	[[ -n ${${(j:|:s:|:)${(M)${(f)"$(< $file)"}:#[[:blank:]]#(\'|)${~action}([[:blank:]]#\|[[:blank:]]#${~action})#(\'|)\)}}//[^-a-z_]} ]] &&
	scripts+=${file##*/}
}

_wanted script expl script compadd $scripts