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