# 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 0 } case $cur in -*) _longopt abook return 0 ;; esac case $prev in --informat) COMPREPLY=( $( compgen -W "$($1 --formats | \ sed -n -e 's/^'$'\t''\([a-z]*\).*/\1/p' -e '/^$/q')" -- "$cur" ) ) return 0 ;; --outformat) COMPREPLY=( $( compgen -W "$($1 --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 abook # ex: ts=4 sw=4 et filetype=sh