c875723bef
This way it's clearer to users that an argument is expected. It's likely that this commit does not catch all such cases, but it should do it for most of the affected commands I have installed.
51 lines
1.3 KiB
Bash
51 lines
1.3 KiB
Bash
# bash completion for configure
|
|
|
|
# No "have configure" here on purpose, it's rarely in any $PATH
|
|
|
|
_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 0
|
|
|
|
# if $COMP_CONFIGURE_HINTS is not null, then completions of the form
|
|
# --option=SETTING will include 'SETTING' as a contextual hint
|
|
[[ "$cur" != -* ]] && return 0
|
|
|
|
if [ -n "$COMP_CONFIGURE_HINTS" ]; then
|
|
COMPREPLY=( $( compgen -W "$( $1 --help 2>&1 | \
|
|
awk '/^ --[A-Za-z]/ { print $1; \
|
|
if ($2 ~ /--[A-Za-z]/) print $2 }' | 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
|
|
|
|
# Local variables:
|
|
# mode: shell-script
|
|
# sh-basic-offset: 4
|
|
# sh-indent-comment: t
|
|
# indent-tabs-mode: nil
|
|
# End:
|
|
# ex: ts=4 sw=4 et filetype=sh
|