# bash completion for pkgconfig -*- shell-script -*- proc _pkg_config { var cur = '', prev = '', words = '', cword = '', split = '' _init_completion -s || return match $prev { with --define-variable|--atleast-version|--atleast-pkgconfig-version| \ --exact-version|--max-version # argument required but no completions available return 0 with --variable var i = '' for (( i=1; i < ${#words[@]}; i++ )); do if [[ ${words[i]} != -* ]]; then COMPREPLY=( $( compgen -W \ '$( "$1" ${words[i]} --print-variables 2>/dev/null )' \ -- "$cur" ) ) break fi done return 0 with -\?|--help|--version|--usage # all other arguments are noop with these return 0 } $split && return 0 if [[ "$cur" == -* ]] { setglobal COMPREPLY = '( '$( compgen -W '$( _parse_help "$1" )' -- "$cur" ) ) [[ $COMPREPLY == *= ]] && compopt -o nospace } else { setglobal COMPREPLY = '( '$( compgen -W "$( $1 --list-all \ 2>/dev/null | awk '{print $1}' )" -- "$cur" ) ) } } && complete -F _pkg_config pkg-config # ex: ts=4 sw=4 et filetype=sh