if `which` thought there was an error, some ugly error messages were printed when pressing the tabulator key. note that this probably obly affected people who used this as the default completor...
61 lines
1.9 KiB
Bash
61 lines
1.9 KiB
Bash
# this snippet enables parameter completion via the tabulator key
|
|
# for bash for opm products.
|
|
|
|
# this is a bash readline completer for the case where a binary is
|
|
# already known to be an eWoms simulator.
|
|
_ewoms_parameter_completor()
|
|
{
|
|
if test "$COMP_WORDS" == ""; then
|
|
return 0
|
|
fi
|
|
|
|
cmd="${COMP_WORDS[0]}"
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
fullcmd="$(which "$cmd" 2> /dev/null)"
|
|
ALL_OPTS=$("$fullcmd" --help 2> /dev/null | grep '^ *--' | sed 's/ *\(--[a-zA-Z0-9\-]*\)=.*/\1=/')
|
|
ALL_OPTS=$(echo "$ALL_OPTS" | sed 's/^ *--help.*/--help/')
|
|
COMPREPLY=( $(compgen -A file -W "$ALL_OPTS" -- "${cur}") )
|
|
}
|
|
|
|
# this is a bash readline default completer which attempts to find out
|
|
# if a given binary is an eWoms simulation. this needs to be set as a
|
|
# default completer because the name of eWoms binaries cannot be known
|
|
# a-priori.
|
|
_ewoms_generic_parameter_completor()
|
|
{
|
|
if test "$COMP_WORDS" == ""; then
|
|
return 0
|
|
fi
|
|
|
|
COMPREPLY=()
|
|
local cmd cur ALL_OPTS
|
|
cmd="${COMP_WORDS[0]}"
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
|
|
fullcmd="$(which "$cmd" 2> /dev/null)"
|
|
if test -z "$fullcmd" || \
|
|
! test -x "$fullcmd" || \
|
|
(! test -f "$fullcmd" && ! test -h "$fullcmd" ) || \
|
|
! test -r "$fullcmd" || \
|
|
! grep -q "Ewoms[a-zA-Z0-9]*Simulator[a-zA-Z0-0]" "$fullcmd"
|
|
then
|
|
if test -n "$DEFAULT_COMPLETION_LOADER"; then
|
|
"$DEFAULT_COMPLETION_LOADER" $@
|
|
elif type -t _completion_loader 2>&1 > /dev/null; then
|
|
# the default DEFAULT_COMPLETION_LOADER variable has not
|
|
# been set and the _completion_loader function exists, so
|
|
# we use _completion_loader as the default completer.
|
|
_completion_loader $@
|
|
else
|
|
return 1
|
|
fi
|
|
|
|
return $?
|
|
fi
|
|
|
|
_ewoms_parameter_completor $@
|
|
return 0
|
|
}
|
|
|
|
complete -o nospace -F _ewoms_parameter_completor @PRODUCT@
|