summaryrefslogtreecommitdiff
path: root/Completion/Unix/Command/_init_d
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Unix/Command/_init_d')
-rw-r--r--Completion/Unix/Command/_init_d15
1 files changed, 14 insertions, 1 deletions
diff --git a/Completion/Unix/Command/_init_d b/Completion/Unix/Command/_init_d
index 9a5ed9ae7..72d11023f 100644
--- a/Completion/Unix/Command/_init_d
+++ b/Completion/Unix/Command/_init_d
@@ -7,7 +7,20 @@ _compskip=all
# This should probably be system specific...
script=$words[1]
-[[ $script = */* ]] || script=/etc/init.d/$script
+if [[ $script != */* ]]; then
+ local -a scriptpath
+ local dir
+ # Known locations of init scripts
+ # C.f. Unix/Type/_services
+ scriptpath=(/etc/init.d /etc/rc.d /etc/rc.d/init.d)
+
+ for dir in $scriptpath; do
+ if [[ -f $dir/$script ]]; then
+ script=$dir/$script
+ break
+ fi
+ done
+fi
# If the file starts with `#!' we hope that this is a shell script
# and get lines looking like <space>foo|bar) with the words in $what.