[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