Ville Skyttä c875723bef Include trailing equals sign in options that take arguments that way.
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.
2011-05-02 11:45:55 +03:00

146 lines
4.3 KiB
Bash

# bash completion for sysbench
have sysbench || return
_sysbench()
{
local cur prev words cword split
_init_completion -s || return
case $prev in
--num-threads|--max-requests|--max-time|--thread-stack-size| \
--help|--version|help|version)
return 0
;;
--init-rng|--debug|--validate)
COMPREPLY=( $( compgen -W 'on off' -- "$cur" ) )
return 0
;;
--test)
COMPREPLY=( $( compgen -W 'fileio cpu memory threads mutex oltp' \
-- "$cur" ) )
return 0
;;
--cpu-max-prime)
return 0
;;
--file-test-mode)
COMPREPLY=( $( compgen -W 'seqwr seqrewr seqrd rndrd rndwr rndrw' \
-- "$cur" ) )
return 0
;;
--file-io-mode)
COMPREPLY=( $( compgen -W 'sync async fastmmap slowmmap' \
-- "$cur" ) )
return 0
;;
--file-extra-flags)
COMPREPLY=( $( compgen -W 'sync dsync direct' -- "$cur" ) )
return 0
;;
--file-fsync-all|--file-fsync-end)
COMPREPLY=( $( compgen -W 'on off' -- "$cur" ) )
return 0
;;
--file-fsync-mode)
COMPREPLY=( $( compgen -W 'fsync fdatasync' -- "$cur" ) )
return 0
;;
--memory-scope)
COMPREPLY=( $( compgen -W 'global local' -- "$cur" ) )
return 0
;;
--memory-hugetlb)
COMPREPLY=( $( compgen -W 'on off' -- "$cur" ) )
return 0
;;
--memory-oper)
COMPREPLY=( $( compgen -W 'read write none' -- "$cur" ) )
return 0
;;
--memory-access-mode)
COMPREPLY=( $( compgen -W 'seq rnd' -- "$cur" ) )
return 0
;;
--oltp-test-mode)
COMPREPLY=( $( compgen -W 'simple complex nontrx sp' -- "$cur" ) )
return 0
;;
--oltp-read-only|--oltp-skip-trx|--oltp-quto-inc|--mysql-ssl)
COMPREPLY=( $( compgen -W 'on off' -- "$cur" ) )
return 0
;;
--oltp-nontrx-mode)
COMPREPLY=( $( compgen -W 'select update_key update_nokey insert
delete' -- "$cur" ) )
return 0
;;
--oltp-dist-type)
COMPREPLY=( $( compgen -W 'uniform gaussian special' -- "$cur" ) )
return 0
;;
--db-driver)
COMPREPLY=( $( compgen -W "$( $1 --test=oltp help 2>/dev/null |
sed -e '/^.*database drivers:/,/^$/!d' \
-ne 's/^ *\([^ ]*\) .*/\1/p' )" -- "$cur" ) )
return 0
;;
--db-ps-mode)
COMPREPLY=( $( compgen -W 'auto disable' -- "$cur" ) )
return 0
;;
--mysql-socket)
_filedir sock
return 0
;;
--mysql-table-engine)
COMPREPLY=( $( compgen -W 'myisam innodb bdb heap ndbcluster
federated' -- "$cur" ) )
return 0
;;
--mysql-engine-trx)
COMPREPLY=( $( compgen -W 'yes no auto' -- "$cur" ) )
return 0
;;
--*)
$split && return 0
;;
esac
# find out which test we're running
local i test
for (( i=1 ; $i < ${#words[@]}-1 ; i++ )); do
if [[ ${words[i]} == --test* ]]; then
test=${words[i]#*=}
break
fi
done
local opts="--num-threads= --max-requests= --max-time= --thread-stack-size=
--init-rng= --debug= --validate= --help --version"
if [[ $test ]]; then
local help=( $( _parse_help "$1" "--test=$test help" ) )
opts+=" ${help[@]} prepare run cleanup help version"
else
opts+=" --test="
fi
if [[ "$cur" == -* || ! $test ]]; then
COMPREPLY=( $( compgen -W "$opts" -- "$cur" ) )
[[ $COMPREPLY == *= ]] && compopt -o nospace
else
COMPREPLY=( $( compgen -W "prepare run cleanup help version" \
-- "$cur" ) )
fi
} &&
complete -F _sysbench sysbench
# 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