Fixed trailing space issue for options ending with an equal sign

This commit is contained in:
Tuncer Ayaz 2010-01-09 18:24:08 +01:00
parent 2e5b035c3e
commit 59bfc5044f

View file

@ -2,29 +2,45 @@
_rebar()
{
local cur prev opts
local cur prev sopts lopts cmdsnvars
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
sopts="-h -v -f -j"
lopts=" --help --verbose --force --jobs"
lopts=" --help --verbose --force --jobs="
cmdsnvars="analyze build_plt check_plt clean compile \
create-app create-node eunit generate \
int_test perf_test test \
case= force=1 jobs= suite= verbose=1"
create-app create-node eunit generate \
int_test perf_test test \
case= force=1 jobs= suite= verbose=1"
if [[ ${cur} == --* ]] ; then
COMPREPLY=( $(compgen -W "${lopts}" -- ${cur}) )
if [ -n "$COMPREPLY" ] ; then
# append space if matched
COMPREPLY="${COMPREPLY} "
# remove trailing space if --lopt=value option
COMPREPLY=${COMPREPLY/%= /=}
fi
return 0
elif [[ ${cur} == -* ]] ; then
COMPREPLY=( $(compgen -W "${sopts}" -- ${cur}) )
if [ -n "$COMPREPLY" ] ; then
# append space if matched
COMPREPLY="${COMPREPLY} "
fi
return 0
else
COMPREPLY=( $(compgen -W "${cmdsnvars}" -- ${cur}) )
if [ -n "$COMPREPLY" ] ; then
# append space if matched
COMPREPLY="${COMPREPLY} "
# remove trailing space if var= option
COMPREPLY=${COMPREPLY/%= /=}
fi
return 0
fi
}
complete -F _rebar rebar
complete -o nospace -F _rebar rebar
# Local variables:
# mode: shell-script