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.
146 lines
4.3 KiB
Bash
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
|