Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Completion function patches



Hello, I recently had to work with two utility functions for the completion system: _services and _init_d. I'm running archlinux and here services are under the /etc/rc.d directory, instead of the default directory that appears in those 2 scripts (/etc/init.d). Attached I provide you with pataches for both scripts, so that they work fine when running a system with an init framework similar to mine. Please let me know if I should do something else to contribute this code.


Edgar Merino
--- _init_d	2009-10-04 07:54:44.000000000 -0500
+++ _init_d.new	2009-10-04 07:38:15.000000000 -0500
@@ -7,7 +7,7 @@
 # This should probably be system specific...
 
 script=$words[1]
-[[ $script = */* ]] || script=/etc/init.d/$script
+[[ $script = */* ]] || script=`[ -d /etc/init.d ] && echo /etc/init.d || echo /etc/rc.d`/$script
 
 # 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.
--- _services	2009-10-04 08:00:36.000000000 -0500
+++ _services.new	2009-10-04 07:38:25.000000000 -0500
@@ -12,7 +12,8 @@
     '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
+  services_directory=`[ -d /etc/init.d ] && echo /etc/init.d || echo /etc/rc.d`;
+  _wanted services expl service compadd "$@" - $services_directory/*(-*:t) && ret=0
 fi
 
 return ret


Messages sorted by: Reverse Date, Date, Thread, Author