about summary refs log tree commit diff
path: root/Completion/Unix/Type
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2009-10-04 18:20:00 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2009-10-04 18:20:00 +0000
commit8ed0fad414daa81c7f7232139e3022b46106437f (patch)
tree03b5ebfd02d0271bf97a671ae9a20abb6f311522 /Completion/Unix/Type
parent179cd828a57c36f312ed7f95abf5e7d8d5fe44a2 (diff)
downloadzsh-8ed0fad414daa81c7f7232139e3022b46106437f.tar.gz
zsh-8ed0fad414daa81c7f7232139e3022b46106437f.tar.xz
zsh-8ed0fad414daa81c7f7232139e3022b46106437f.zip
27308, based on 27305 from Edgar Merino:
search for init scripts in other locations
Diffstat (limited to 'Completion/Unix/Type')
-rw-r--r--Completion/Unix/Type/_services14
1 files changed, 13 insertions, 1 deletions
diff --git a/Completion/Unix/Type/_services b/Completion/Unix/Type/_services
index 2965e0f3e..40136e3c1 100644
--- a/Completion/Unix/Type/_services
+++ b/Completion/Unix/Type/_services
@@ -12,7 +12,19 @@ if chkconfig --list > /dev/null 2>&1; then
     'init:init service:compadd -a inits' \
     'xinetd:xinetd service:compadd -a xinetds' && ret=0
 else
-  _wanted services expl service compadd "$@" - /etc/init.d/*(-*:t) && ret=0
+  local -a scriptpath
+  local dir
+  # Known locations of init scripts
+  # C.f. Unix/Commands/_init_d
+  scriptpath=(/etc/init.d /etc/rc.d /etc/rc.d/init.d)
+
+  for dir in $scriptpath; do
+    if [[ -d $dir ]]; then
+      break
+    fi
+  done
+  _wanted services expl service compadd "$@" - $dir/*(-*:t) &&
+  ret=0
 fi
 
 return ret