# 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