[Bash-completion-commits] [SCM] debian-package branch, master, updated. debian/1.3-1-32-g653f34e

David Paleino dapal at debian.org
Tue Apr 12 10:44:08 UTC 2011


The following commit has been merged in the master branch:
commit d0b5ec9da84ca7cf096d491419b968e3ec5ece72
Author: David Paleino <dapal at debian.org>
Date:   Wed Apr 6 12:48:18 2011 +0200

    Implement triggers: activate completions when something is installed in $PATH (drawback: paths are hardcoded in debian/triggers)

diff --git a/debian/changelog b/debian/changelog
index a0cfb28..9b9f356 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -2,8 +2,10 @@ bash-completion (1:1.3-2) UNRELEASED; urgency=low
 
   * Change completion directory layout (00-change_completions_layout.patch)
   * Use autoreconf in debian/rules
+  * Implement triggers: activate completions when something is installed
+    in $PATH (drawback: paths are hardcoded in debian/triggers)
 
- -- David Paleino <dapal at debian.org>  Wed, 06 Apr 2011 10:32:16 +0200
+ -- David Paleino <dapal at debian.org>  Wed, 06 Apr 2011 12:13:51 +0200
 
 bash-completion (1:1.3-1) unstable; urgency=low
 
diff --git a/debian/compdict b/debian/compdict
new file mode 100644
index 0000000..257e54f
--- /dev/null
+++ b/debian/compdict
@@ -0,0 +1,283 @@
+completions/abook:abook
+completions/ant:ant
+completions/ant:complete-ant-cmd.pl
+completions/apache2ctl:apache2ctl
+completions/apt:apt-get
+completions/apt:apt-cache
+completions/apt-build:apt-build
+completions/aptitude:aptitude
+completions/aptitude:grep-status
+completions/aspell:aspell
+completions/autoconf:autoconf
+completions/autoconf:autoreconf autoheader
+completions/autoconf:autoscan autoupdate
+completions/automake:automake
+completions/automake:aclocal
+completions/autorpm:autorpm
+completions/bind-utils:nslookup
+completions/bitkeeper:bk
+completions/bittorrent:btdownloadheadless.py btdownloadcurses.py
+completions/bittorrent:btdownloadgui.py
+completions/bluez:hcitool
+completions/brctl:brctl
+completions/bzip2:bzip2 pbzip2
+completions/cardctl:cardctl pccardctl
+completions/cfengine:cfagent
+completions/chkconfig:chkconfig
+completions/cksfv:cksfv
+completions/clisp:clisp
+completions/coreutils:chown
+completions/coreutils:chgrp
+completions/coreutils:id
+completions/coreutils:mktemp
+completions/cowsay:cowsay
+completions/cpan2dist:cpan2dist
+completions/cpio:cpio
+completions/crontab:crontab
+completions/cryptsetup:cryptsetup
+completions/cups:cancel
+completions/cvs:cvs
+completions/cvsps:cvsps
+completions/dd:dd
+completions/dhclient:dhclient
+completions/dict:dict rdict
+completions/dpkg:dpkg
+completions/dpkg:grep-status
+completions/dpkg:dpkg-reconfigure
+completions/dpkg:dpkg-source
+completions/dselect:dselect
+completions/dsniff:arpspoof
+completions/dsniff:dnsspoof
+completions/dsniff:dsniff
+completions/dsniff:filesnarf mailsnarf msgsnarf
+completions/dsniff:macof
+completions/dsniff:sshmitm
+completions/dsniff:sshow
+completions/dsniff:tcpkill
+completions/dsniff:tcpnice
+completions/dsniff:urlsnarf
+completions/dsniff:webmitm
+completions/dvd+rw-tools:growisofs
+completions/e2fsprogs:badblocks
+completions/e2fsprogs:dumpe2fs
+completions/e2fsprogs:e2freefrag
+completions/e2fsprogs:e2label
+completions/e2fsprogs:filefrag
+completions/e2fsprogs:tune2fs
+completions/findutils:find
+completions/freeciv:civserver
+completions/freeciv:civclient
+completions/freerdp:xfreerdp
+completions/fuse:fusermount
+completions/gcc:gcc
+completions/gcl:gcl
+completions/gdb:gdb
+completions/genisoimage:mkisofs genisoimage
+completions/getent:getent
+completions/gkrellm:gkrellm gkrellm2
+completions/gnatmake:gnatmake
+completions/gpg:gpg
+completions/gpg2:gpg2
+completions/gzip:gzip pigz
+completions/heimdal:ktutil
+completions/hping2:hping hping2 hping3
+completions/iconv:iconv
+completions/iftop:iftop
+completions/ifupdown:ifup ifdown
+completions/ifupdown:ifstatus
+completions/imagemagick:convert
+completions/info:info
+completions/ipmitool:ipmitool
+completions/iproute2:ip
+completions/ipsec:ipsec
+completions/iptables:iptables
+completions/ipv6calc:ipv6calc
+completions/isql:isql
+completions/jar:jar
+completions/java:java javac javadoc
+completions/java:java javadoc
+completions/java:java
+completions/java:javadoc
+completions/java:javac
+completions/java:pack200
+completions/java:unpack200
+completions/java:jarsigner
+completions/java:javaws
+completions/k3b:k3b
+completions/larch:larch
+completions/ldapvi:ldapvi
+completions/lftp:lftp
+completions/lftp:lftpget
+completions/lilo:lilo
+completions/links:links
+completions/lintian:lintian
+completions/lisp:lisp
+completions/lrzip:lrzip
+completions/lsof:lsof
+completions/lvm:lvm
+completions/lzma:lzma
+completions/lzop:lzop
+completions/mailman:list_lists
+completions/mailman:add_members
+completions/mailman:remove_members
+completions/mailman:find_member
+completions/mailman:clone_member
+completions/mailman:sync_members
+completions/mailman:unshunt
+completions/mailman:list_admins
+completions/mailman:list_owners
+completions/mailman:list_members
+completions/mailman:change_pw
+completions/mailman:withlist
+completions/mailman:newlist
+completions/mailman:rmlist
+completions/mailman:config_list
+completions/mailman:mailmanctl
+completions/mailman:cleanarch
+completions/mailman:inject
+completions/mailman:dumpdb
+completions/mailman:check_db
+completions/mailman:check_perms
+completions/mailman:genaliases
+completions/mailman:mmsitepass
+completions/mailman:qrunner
+completions/mailman:mailmanctl
+completions/make:make gmake gnumake pmake
+completions/mc:mc
+completions/mcrypt:mcrypt mdecrypt
+completions/mdadm:mdadm
+completions/medusa:medusa
+completions/minicom:minicom
+completions/mkinitrd:mkinitrd
+completions/_mock:mock
+completions/module-init-tools:rmmod
+completions/module-init-tools:insmod modprobe modinfo
+completions/_modules:module
+completions/monodevelop:monodevelop
+completions/monodevelop:mdtool
+completions/mount:mount
+completions/mount:umount
+completions/mplayer:mplayer
+completions/msynctool:msynctool
+completions/mtx:mtx
+completions/munin-node:munin-run
+completions/munin-node:munindoc
+completions/munin-node:munin-update
+completions/munin-node:munin-node-configure
+completions/mutt:mutt muttng
+completions/mysqladmin:mysqladmin
+completions/ncftp:ncftp
+completions/net-tools:mii-tool
+completions/net-tools:mii-diag
+completions/net-tools:route
+completions/net-tools:ether-wake
+completions/nmap:nmap
+completions/ntpdate:ntpdate
+completions/open-iscsi:iscsiadm
+completions/openldap:ldapsearch
+completions/openssl:openssl
+completions/p4:p4
+completions/perl:perl
+completions/pine:pine alpine
+completions/pkg-config:pkg-config
+completions/pkgtools:removepkg
+completions/pm-utils:pm-is-supported
+completions/pm-utils:pm-hibernate pm-suspend pm-suspend-hybrid
+completions/pm-utils:pm-powersave
+completions/portupgrade:portupgrade
+completions/portupgrade:portinstall
+completions/portupgrade:pkg_deinstall
+completions/postfix:postfix
+completions/postgresql:psql
+completions/povray:povray xpovray spovray
+completions/procps:pkill
+completions/procps:pgrep
+completions/procps:pgrep
+completions/python:python
+completions/qdbus:qdbus dcop
+completions/qemu:qemu
+completions/quota-tools:quota
+completions/rcs:rcs
+completions/rdesktop:rdesktop
+completions/reportbug:reportbug
+completions/reportbug:querybts
+completions/resolvconf:resolvconf
+completions/rfkill:rfkill
+completions/ri:ri
+completions/rpcdebug:rpcdebug
+completions/rpm:rpm
+completions/rpm:gendiff
+completions/rpmcheck:rpmcheck
+completions/rrdtool:rrdtool
+completions/rsync:rsync
+completions/rtcwake:rtcwake
+completions/samba:smbclient
+completions/sbcl:sbcl sbcl-mt
+completions/screen:screen
+completions/service:service
+completions/sh:sh
+completions/shadow:useradd
+completions/shadow:usermod
+completions/shadow:userdel
+completions/shadow:chage
+completions/shadow:passwd
+completions/shadow:chpasswd
+completions/shadow:newusers
+completions/shadow:pwck
+completions/shadow:groupadd
+completions/shadow:groupmod
+completions/shadow:newgrp
+completions/shadow:gpasswd
+completions/shadow:groupmems
+completions/shadow:grpck
+completions/shadow:vipw vigr
+completions/shadow:faillog
+completions/shadow:lastlog
+completions/sitecopy:sitecopy
+completions/smartctl:smartctl
+completions/snownews:snownews
+completions/sqlite3:sqlite3
+completions/ssh:ssh
+completions/sshfs:sshfs
+completions/strace:strace
+completions/_subversion:svn
+completions/svk:svk
+completions/sysbench:sysbench
+completions/sysctl:sysctl
+completions/sysv-rc:update-rc.d
+completions/sysv-rc:invoke-rc.d
+completions/tar:tar
+completions/tcpdump:tcpdump
+completions/unace:unace
+completions/unrar:unrar
+completions/update-alternatives:update-alternatives
+completions/util-linux:renice
+completions/util-linux:kill
+completions/util-linux:look
+completions/vncviewer:vncviewer
+completions/vncviewer:tightvncviewer
+completions/vncviewer:xvnc4viewer
+completions/vpnc:vpnc
+completions/wireless-tools:iwconfig
+completions/wireless-tools:iwlist
+completions/wireless-tools:iwspy
+completions/wireless-tools:iwpriv
+completions/wodim:cdrecord wodim
+completions/wol:wol
+completions/wtf:wtf
+completions/wvdial:wvdial
+completions/xhost:xhost
+completions/xm:xm
+completions/xmllint:xmllint
+completions/xmlwf:xmlwf
+completions/xmms:xmms
+completions/xmodmap:xmodmap
+completions/xrandr:xrandr
+completions/xrdb:xrdb
+completions/xsltproc:xsltproc
+completions/xz:xz
+completions/xz:xzdec
+completions/yp-tools:ypcat
+completions/_yum:yum
+completions/yum-arch:yum-arch
+completions/_yum-utils:repomanage
diff --git a/debian/dirs b/debian/dirs
index ce73da0..c57d6fb 100644
--- a/debian/dirs
+++ b/debian/dirs
@@ -1,4 +1,4 @@
-etc/bash_completion.d
+etc/bash_completion.d/triggered/
 usr/bin
 usr/share/doc/bash
 usr/share/doc/bash-completion
diff --git a/debian/extra/get-completions b/debian/extra/get-completions
new file mode 100755
index 0000000..0fe21b4
--- /dev/null
+++ b/debian/extra/get-completions
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+commands=$(compgen -c)
+
+for c in $commands; do
+	line=$(grep -w -F $c $1)
+	if [ -n "$line" ]; then
+		comp=$(echo $line | cut -d: -f1)
+		val=$(echo -n $line | cut -d: -f2 | tr ' ' '|')
+		fixedval=$(printf "%s|\n" $val)
+
+		if [ -n "$(echo $fixedval | grep "$c|")" ]; then
+			echo $comp
+		fi
+	fi
+done
diff --git a/debian/install b/debian/install
index 9d59409..9e33513 100644
--- a/debian/install
+++ b/debian/install
@@ -1,2 +1,5 @@
 debian/extra/dh_bash-completion	/usr/bin/
 debian/extra/bash_completion.pm	/usr/share/perl5/Debian/Debhelper/Sequence/
+
+debian/compdict	/usr/share/bash-completion/
+debian/extra/get-completions	/usr/share/bash-completion/
diff --git a/debian/postinst b/debian/postinst
index 0a83df3..5180527 100644
--- a/debian/postinst
+++ b/debian/postinst
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 set -e
 
@@ -11,9 +11,22 @@ case "$1" in
 	if which ucfr >/dev/null; then
 	    ucfr --purge bash-completion /etc/bash_completion
 	fi
+        # Populate with completions based on available commands
+        rm -rf /etc/bash_completion.d/triggered/*
+        for c in $(/usr/share/bash-completion/get-completions /usr/share/bash-completion/compdict); do
+            ln -sf /usr/share/bash-completion/$f /etc/bash_completion.d/triggered/
+        done
 	;;
     abort-upgrade|abort-remove|abort-deconfigure)
 	;;
+    triggered)
+        # This is triggered by any installation of an executable in $PATH
+        # (check debian/triggers to see what paths are being monitored)
+        rm -rf /etc/bash_completion.d/triggered/*
+        for c in $(/usr/share/bash-completion/get-completions /usr/share/bash-completion/compdict); do
+            ln -sf /usr/share/bash-completion/$f /etc/bash_completion.d/triggered/
+        done
+    ;;
     *)
         echo "postinst called with unknown argument \`$1'" >&2
         exit 1
diff --git a/debian/rules b/debian/rules
index 5096e1c..6f10169 100755
--- a/debian/rules
+++ b/debian/rules
@@ -13,6 +13,27 @@ override_dh_auto_configure:
 	[ -d test/log ] || mkdir -p test/log
 	[ -d test/tmp ] || mkdir -p test/tmp
 
+override_dh_auto_build:
+	dh_auto_build
+
+	grep -w "have" completions/* | \
+		grep "have " | \
+		sed -e "s/ || have//g" \
+			-e "s/ ||.*//g" \
+			-e "s/ &&\(^ have\)*//g" \
+			-e "/[ ]*#/d" \
+			-e "s/\[.*\] //g" \
+			-e "s/ {//g" \
+			-e "s/:.*have /:/g" \
+			-e "s/ \\\//g" \
+			-e "s/ complete -F .*//g" \
+			-e "s/;.*//g" \
+			-e "s/ _.*()//g" \
+			-e "s/)//g" \
+			-e "s/ \[.*\]//g" \
+			-e "/.*UNAME.*/d" \
+	> debian/compdict
+
 override_dh_compress:
 	dh_compress -Xcompletions
 
diff --git a/debian/triggers b/debian/triggers
new file mode 100644
index 0000000..7fb8e12
--- /dev/null
+++ b/debian/triggers
@@ -0,0 +1,8 @@
+interest /sbin
+interest /usr/sbin
+interest /usr/local/sbin
+interest /bin
+interest /usr/bin
+interest /usr/local/bin
+interest /usr/games
+interest /usr/local/games

-- 
debian-package



More information about the Bash-completion-commits mailing list