summaryrefslogtreecommitdiffstats
path: root/completions/pkg-config
diff options
context:
space:
mode:
Diffstat (limited to 'completions/pkg-config')
-rw-r--r--completions/pkg-config45
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