diff options
Diffstat (limited to '')
-rw-r--r-- | completions/pkg-config | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/completions/pkg-config b/completions/pkg-config new file mode 100644 index 0000000..b9db167 --- /dev/null +++ b/completions/pkg-config @@ -0,0 +1,45 @@ +# bash completion for pkgconfig -*- shell-script -*- + +_pkg_config() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + --define-variable | --atleast-version | --atleast-pkgconfig-version | \ + --exact-version | --max-version) + # argument required but no completions available + return + ;; + --variable) + local word + for word in "${words[@]:1}"; do + if [[ $word != -* ]]; then + COMPREPLY=($(compgen -W \ + '$("$1" $word --print-variables 2>/dev/null)' \ + -- "$cur")) + break + fi + done + return + ;; + -\? | --help | --version | --usage) + # all other arguments are noop with these + return + ;; + esac + + $split && return + + if [[ $cur == -* ]]; then + COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + [[ ${COMPREPLY-} == *= ]] && compopt -o nospace + else + COMPREPLY=($(compgen -W "$($1 --list-all \ + 2>/dev/null | awk '{print $1}')" -- "$cur")) + _filedir pc + fi +} && + complete -F _pkg_config pkg-config + +# ex: filetype=sh |