[arch-projects] [INITSCRIPTS][PATCH 6/6] Add rc.d bash completion
Sebastien Luttringer
seblu at seblu.net
Wed May 4 21:04:50 EDT 2011
Signed-off-by: Sebastien Luttringer <seblu at seblu.net>
---
Makefile | 3 ++-
bash-completion | 18 ++++++++++++++++++
2 files changed, 20 insertions(+), 1 deletions(-)
create mode 100644 bash-completion
diff --git a/Makefile b/Makefile
index 6923840..69f008a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,5 @@
VER := $(shell git describe)
-DIRS := /etc/rc.d /etc/conf.d /etc/rc.d/functions.d /etc/cron.hourly /sbin
+DIRS := /etc/rc.d /etc/conf.d /etc/rc.d/functions.d /etc/cron.hourly /sbin /etc/bash_completion.d
minilogd: minilogd.o
@@ -13,6 +13,7 @@ install: minilogd installdirs
install -m755 -t $(DESTDIR)/etc/cron.hourly adjtime
install -m755 -t $(DESTDIR)/etc/rc.d functions hwclock network netfs
install -m755 -t $(DESTDIR)/sbin minilogd rc.d
+ install -m644 -T bash-completion $(DESTDIR)/etc/bash_completion.d/rc.d
clean:
rm -f minilogd minilogd.o
diff --git a/bash-completion b/bash-completion
new file mode 100644
index 0000000..3b0f464
--- /dev/null
+++ b/bash-completion
@@ -0,0 +1,18 @@
+# rc.d bash completion by Seblu <seblu at seblu.net>
+
+_rc.d ()
+{
+ local action="help list start stop reload restart"
+ local cur="${COMP_WORDS[COMP_CWORD]}"
+ local caction="${COMP_WORDS[1]}"
+ if ((${COMP_CWORD} == 1)); then
+ COMPREPLY=($(compgen -W "${action}" -- "$cur"))
+ elif [[ "$caction" == "help" || "$caction" == "list" ]]; then
+ COMPREPLY=()
+ elif ((${COMP_CWORD} > 1)); then
+ COMPREPLY=($( compgen -W "$(find /etc/rc.d -maxdepth 1 -type f -executable -printf '%f\n')" -- "$cur" ))
+ fi
+}
+complete -F _rc.d rc.d
+
+# vim: set ts=2 sw=2 ft=sh noet:
--
Sebastien "Seblu" Luttringer
More information about the arch-projects
mailing list