summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTzafrir Cohen <tzafrir.cohen@xorcom.com>2009-08-12 15:36:08 +0000
committerTzafrir Cohen <tzafrir.cohen@xorcom.com>2009-08-12 15:36:08 +0000
commitb7ec9fa5f38fa40cc618f523c428f5172f3fb40c (patch)
tree2ac1ea1fa2fbc108ba228845872279e895ff8dc4
parent6c2c899d600b4264a6d2876b854672015438dbda (diff)
rapid-tunneling: bash completion for rtadm
git-svn-id: svn+ssh://xorcom/home/svn/debs/components/rapid-tunneling@7314 283159da-0705-0410-b60c-f2062b4bb6ad
-rw-r--r--Makefile2
-rw-r--r--debian/rapid-tunneling-server.install1
-rw-r--r--rapid-tunneling.spec1
-rw-r--r--rtadm.bash_completion53
4 files changed, 57 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 6fce990..c888ea8 100644
--- a/Makefile
+++ b/Makefile
@@ -67,6 +67,8 @@ install:
install -m 644 gui/* $(DESTDIR)$(WWWHOME)/
install -m 755 -d $(DESTDIR)/etc/httpd/conf.d
install -m 644 rapid-tunneling.conf $(DESTDIR)/etc/httpd/conf.d/
+ install -m 755 -d $(DESTDIR)/etc/bash_completion.d
+ install -m 644 rtadm.bash_completion $(DESTDIR)/etc/bash_completion.d/rtadm
.PHONY: clean dummy
dummy:
diff --git a/debian/rapid-tunneling-server.install b/debian/rapid-tunneling-server.install
index e427762..8e3b9ab 100644
--- a/debian/rapid-tunneling-server.install
+++ b/debian/rapid-tunneling-server.install
@@ -1,3 +1,4 @@
+etc/bash_completion.d/rtadm
etc/rapid-tunneling/rtadm
etc/ssh/sshd_support_config
usr/share/rapid-tunneling/support_env
diff --git a/rapid-tunneling.spec b/rapid-tunneling.spec
index 5ed12cb..71f14f2 100644
--- a/rapid-tunneling.spec
+++ b/rapid-tunneling.spec
@@ -113,6 +113,7 @@ service httpd reload
%files server
%defattr(-, root, root, 0755)
+%config /etc/bash_completion.d/rtadm
%config(noreplace) /etc/rapid-tunneling/rtadm
%config(noreplace) /etc/ssh/sshd_support_config
%config /etc/init.d/sshd_support
diff --git a/rtadm.bash_completion b/rtadm.bash_completion
new file mode 100644
index 0000000..15e3c70
--- /dev/null
+++ b/rtadm.bash_completion
@@ -0,0 +1,53 @@
+# Bash completion for rtadm
+
+_rtadm_ra_hosts_disabled() {
+ awk '/^#DISABLED#/ {print $5}' .ssh/authorized_keys | cut -d- -f3
+}
+
+_rtadm_ra_hosts_enabled() {
+ awk '/^[^#].* ra-/ {print $5}' .ssh/authorized_keys | cut -d- -f3
+}
+
+_rtadm_ra_hosts() {
+ awk '/ ra-/ {print $5}' .ssh/authorized_keys | cut -d- -f3
+}
+
+_rtadm() {
+ local cur commands command hosts
+
+ COMPREPLY=()
+ cur=`_get_cword`
+
+ commands='create show enable disable disconnect delete'
+
+ if [[ $COMP_CWORD -eq 1 ]] ; then
+ COMPREPLY=( $( compgen -W "$commands" -- $cur ) )
+ return 0
+ fi
+
+
+ command=${COMP_WORDS[1]}
+ case "$command" in
+ create)
+ # Fixme: some completion here.
+ : #create [-e] port newname
+ ;;
+ show) : # No parameters here
+ ;;
+ enable)
+ hosts=`_rtadm_ra_hosts_disabled`
+ COMPREPLY=( $( compgen -W "$hosts" -- $cur ) )
+ ;;
+ disable|disconnect)
+ hosts=`_rtadm_ra_hosts_enabled`
+ COMPREPLY=( $( compgen -W "$hosts" -- $cur ) )
+ ;;
+ delete)
+ hosts=`_rtadm_ra_hosts`
+ COMPREPLY=( $( compgen -W "$hosts" -- $cur ) )
+ ;;
+ esac
+ return 0
+}
+
+complete -F _rtadm rtadm