summaryrefslogtreecommitdiffstats
path: root/completions/abook
diff options
context:
space:
mode:
Diffstat (limited to 'completions/abook')
-rw-r--r--completions/abook49
1 files changed, 49 insertions, 0 deletions
diff --git a/completions/abook b/completions/abook
new file mode 100644
index 0000000..42197d1
--- /dev/null
+++ b/completions/abook
@@ -0,0 +1,49 @@
+# abook(1) completion -*- shell-script -*-
+
+_abook()
+{
+ local cur prev words cword
+ _init_completion || return
+
+ # abook only takes options, tabbing after command name adds a single dash
+ [[ $cword -eq 1 && -z $cur ]] &&
+ {
+ compopt -o nospace
+ COMPREPLY=("-")
+ return
+ }
+
+ case $cur in
+ -*)
+ _longopt "$1"
+ return
+ ;;
+ esac
+
+ case $prev in
+ --informat)
+ COMPREPLY=($(compgen -W "$($1 --formats |
+ command sed -n -e 's/^'$'\t''\([a-z]*\).*/\1/p' -e '/^$/q')" \
+ -- "$cur"))
+ ;;
+ --outformat)
+ COMPREPLY=($(compgen -W "$($1 --formats |
+ command sed -n -e '/^$/,$s/^'$'\t''\([a-z]*\).*/\1/p')" \
+ -- "$cur"))
+ ;;
+ --infile)
+ COMPREPLY=($(compgen -W stdin -- "$cur"))
+ _filedir
+ ;;
+ --outfile)
+ COMPREPLY=($(compgen -W stdout -- "$cur"))
+ _filedir
+ ;;
+ --config | --datafile)
+ _filedir
+ ;;
+ esac
+} &&
+ complete -F _abook abook
+
+# ex: filetype=sh