# abook(1) completion -*- shell-script -*- proc _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" ]] && do { compopt -o nospace setvar COMPREPLY = ''( "-" ) return 0 } case (cur) { -* { _longopt abook return 0 } } case (prev) { --informat { setvar COMPREPLY = ''( $( compgen -W "$($1 --formats | \ sed -n -e 's/^'$'\t''\([a-z]*\).*/\1/p' -e '/^$/q')" -- "$cur" ) ) return 0 } --outformat { setvar COMPREPLY = ''( $( compgen -W "$($1 --formats | \ sed -n -e '/^$/,$s/^'$'\t''\([a-z]*\).*/\1/p')" -- "$cur" ) ) return 0 } --infile { setvar COMPREPLY = ''( $( compgen -W stdin -- "$cur" ) ) _filedir return 0 } --outfile { setvar COMPREPLY = ''( $( compgen -W stdout -- "$cur" ) ) _filedir return 0 } --config|--datafile { _filedir return 0 } } } && complete -F _abook abook # ex: ts=4 sw=4 et filetype=sh