[Bash-completion-commits] [SCM] bash-completion branch, master, updated. 29ee9fb3f973ad249806c1b412716330d76f06b2
Ville Skyttä
ville.skytta at iki.fi
Sat Oct 31 12:12:35 UTC 2009
The following commit has been merged in the master branch:
commit 46fa5c464b326ac431d587880582307007e6a82e
Author: Ville Skyttä <ville.skytta at iki.fi>
Date: Thu Oct 29 20:29:35 2009 +0200
Add abook completion, based on work by Raphaël Droz.
diff --git a/CHANGES b/CHANGES
index d9e3ae9..cc0c165 100644
--- a/CHANGES
+++ b/CHANGES
@@ -18,7 +18,7 @@ bash-completion (2.x)
* Apply pine completion to alpine too.
* Remove many unnecessary short option completions where long ones exist.
* Improve cvs, gkrellm, lftp, mdadm, and mysqladmin completions.
- * Add wtf completion, based on work by Raphaël Droz.
+ * Add abook and wtf completion, based on work by Raphaël Droz.
* Add lftpget completion.
* Don't overwrite other host completions when completing from multiple
SSH known hosts files.
diff --git a/Makefile.am b/Makefile.am
index 8a1eacb..94392ad 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -3,7 +3,8 @@ AUTOMAKE_OPTIONS = dist-bzip2
sysconf_DATA = bash_completion
bashcompdir = $(sysconfdir)/bash_completion.d
-bashcomp_DATA = contrib/ant \
+bashcomp_DATA = contrib/abook \
+ contrib/ant \
contrib/apache2ctl \
contrib/apt \
contrib/apt-build \
diff --git a/contrib/abook b/contrib/abook
new file mode 100644
index 0000000..fba0f24
--- /dev/null
+++ b/contrib/abook
@@ -0,0 +1,65 @@
+# abook(1) completion
+
+have abook &&
+_abook()
+{
+ local cur prev
+
+ COMPREPLY=()
+ cur=`_get_cword`
+ prev=${COMP_WORDS[COMP_CWORD-1]}
+
+ # abook only takes options, tabbing after command name adds a single
+ # dash (bash4)
+ [ ${BASH_VERSINFO[0]} -ge 4 -a $COMP_CWORD -eq 1 -a -z "$cur" ] &&
+ {
+ compopt -o nospace
+ COMPREPLY=( "-" )
+ return 0
+ }
+
+ case "$cur" in
+ -*)
+ _longopt abook
+ return 0
+ ;;
+ esac
+
+ case "$prev" in
+ --informat)
+ [ ${BASH_VERSINFO[0]} -ge 4 ] && compopt +o filenames
+ COMPREPLY=( $( compgen -W "$(abook --formats | \
+ sed -n -e 's/^\t\([a-z]*\).*/\1/p' -e '/^$/q')" -- "$cur" ) )
+ return 0
+ ;;
+ --outformat)
+ [ ${BASH_VERSINFO[0]} -ge 4 ] && compopt +o filenames
+ COMPREPLY=( $( compgen -W "$(abook --formats | \
+ sed -n -e '/^$/,$s/^\t\([a-z]*\).*/\1/p')" -- "$cur" ) )
+ return 0
+ ;;
+ --infile)
+ COMPREPLY=( $( compgen -W stdin -- "$cur" ) )
+ _filedir
+ return 0
+ ;;
+ --outfile)
+ COMPREPLY=( $( compgen -W stdout -- "$cur" ) )
+ _filedir
+ return 0
+ ;;
+ --config|--datafile)
+ _filedir
+ return 0
+ ;;
+ esac
+} &&
+complete -F _abook -o filenames abook
+
+# Local variables:
+# mode: shell-script
+# sh-basic-offset: 4
+# sh-indent-comment: t
+# indent-tabs-mode: nil
+# End:
+# ex: ts=4 sw=4 et filetype=sh
--
bash-completion
More information about the Bash-completion-commits
mailing list