diff options
Diffstat (limited to 'completions/configure')
-rw-r--r-- | completions/configure | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/completions/configure b/completions/configure new file mode 100644 index 0000000..3f59a01 --- /dev/null +++ b/completions/configure @@ -0,0 +1,42 @@ +# bash completion for configure -*- shell-script -*- + +_configure() +{ + local cur prev words cword split + _init_completion -s || return + + case $prev in + -h | --help | -V | --version | --program-prefix | --program-suffix | \ + --program-transform-name) + return + ;; + --*file) + _filedir + return + ;; + --*prefix | --*dir) + _filedir -d + return + ;; + esac + + $split && return + + # if $COMP_CONFIGURE_HINTS is not null, then completions of the form + # --option=SETTING will include 'SETTING' as a contextual hint + [[ $cur != -* ]] && return + + if [[ ${COMP_CONFIGURE_HINTS-} ]]; then + COMPREPLY=($(compgen -W "$($1 --help 2>&1 | + awk '/^ --[A-Za-z]/ { print $1; \ + if ($2 ~ /--[A-Za-z]/) print $2 }' | command sed -e 's/[[,].*//g')" \ + -- "$cur")) + [[ ${COMPREPLY-} == *=* ]] && compopt -o nospace + else + COMPREPLY=($(compgen -W '$(_parse_help "$1")' -- "$cur")) + [[ ${COMPREPLY-} == *= ]] && compopt -o nospace + fi +} && + complete -F _configure configure + +# ex: filetype=sh |