From: Jeremy Kerr Date: Sun, 19 Nov 2006 12:28:07 +0000 (+1100) Subject: Add bash completion definitions X-Git-Url: https://git.ozlabs.org/?p=bitfield;a=commitdiff_plain;h=b54954b5c1d9d8c014a041987b07634587baefcc;hp=40265d54d2dba5f1a567fdc3b47714c1b0405149 Add bash completion definitions Signed-off-by: Jeremy Kerr --- diff --git a/bitfield-completions.sh b/bitfield-completions.sh new file mode 100644 index 0000000..d602b9e --- /dev/null +++ b/bitfield-completions.sh @@ -0,0 +1,37 @@ +# completion for bitfield program +_bitfield_list() { + bitfield --list | awk '{print $1}' +} + +_bitfield() { + local cur prev + + COMPREPLY=() + cur=${COMP_WORDS[COMP_CWORD]} + prev=${COMP_WORDS[COMP_CWORD-1]} + + # help, search, list: no completions + if [[ "$prev" == '-h' || "$prev" == '-s' || "$prev" == '-l' ]] + then + return 0 + fi + + opts="--help --search --list --non-zero" + + # complete -* with long options. + if [[ "$cur" == -* ]] + then + COMPREPLY=($(compgen -W "$opts" -- $cur)) + return 0 + fi + + # first parameter on line - complete with options + list of bitfields + # FIXME: presence of -n will disable this... + if [ $COMP_CWORD -eq 1 ] + then + COMPREPLY=($(compgen -W "$opts $(_bitfield_list)" -- $cur)) + return 0 + fi +} + +complete -F _bitfield filenames bitfield