# 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 && $COMP_CWORD -eq 1 && -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