# 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