# bash completion for ctest(1) -*- shell-script -*- | |
_ctest() | |
{ | |
local cur prev words cword | |
if type -t _init_completion >/dev/null; then | |
_init_completion -n = || return | |
else | |
# manual initialization for older bash completion versions | |
COMPREPLY=() | |
cur="${COMP_WORDS[COMP_CWORD]}" | |
prev="${COMP_WORDS[COMP_CWORD-1]}" | |
fi | |
case "$prev" in | |
-C|--build-config) | |
COMPREPLY=( $( compgen -W 'Debug Release RelWithDebInfo | |
MinSizeRel' -- "$cur" ) ) | |
return | |
;; | |
-j|--parallel) | |
COMPREPLY=( $( compgen -W "{1..$(( $(_ncpus)*2 ))}" -- "$cur" ) ) | |
return | |
;; | |
-O|--output-log|-A|--add-notes|--extra-submit) | |
_filedir | |
return | |
;; | |
-L|--label-regex|-LE|--label-exclude) | |
COMPREPLY=( $( compgen -W '$( ctest --print-labels 2>/dev/null | | |
grep "^ " 2>/dev/null | cut -d" " -f 3 )' -- "$cur" ) ) | |
return | |
;; | |
--track|-I|--tests-information|--max-width|--timeout|--stop-time) | |
# argument required but no completions available | |
return | |
;; | |
-R|--tests-regex|-E|--exclude-regex) | |
COMPREPLY=( $( compgen -W '$( ctest -N 2>/dev/null | | |
grep "^ Test" 2>/dev/null | cut -d: -f 2 )' -- "$cur" ) ) | |
return | |
;; | |
-D|--dashboard) | |
if [[ $cur == @(Experimental|Nightly|Continuous)* ]]; then | |
local model action | |
action=${cur#@(Experimental|Nightly|Continuous)} | |
model=${cur%"$action"} | |
COMPREPLY=( $( compgen -W 'Start Update Configure Build Test | |
Coverage Submit MemCheck' -P "$model" -- "$action" ) ) | |
else | |
COMPREPLY=( $( compgen -W 'Experimental Nightly Continuous' \ | |
-- "$cur" ) ) | |
compopt -o nospace | |
fi | |
return | |
;; | |
-M|--test-model) | |
COMPREPLY=( $( compgen -W 'Experimental Nightly Continuous' -- \ | |
"$cur" ) ) | |
return | |
;; | |
-T|--test-action) | |
COMPREPLY=( $( compgen -W 'Start Update Configure Build Test | |
Coverage Submit MemCheck' -- "$cur" ) ) | |
return | |
;; | |
-S|--script|-SP|--script-new-process) | |
_filedir '@(cmake|ctest)' | |
return | |
;; | |
--interactive-debug-mode) | |
COMPREPLY=( $( compgen -W '0 1' -- "$cur" ) ) | |
return | |
;; | |
--help-command) | |
COMPREPLY=( $( compgen -W '$( ctest --help-command-list 2>/dev/null| | |
grep -v "^ctest version " )' -- "$cur" ) ) | |
return | |
;; | |
--help-manual) | |
COMPREPLY=( $( compgen -W '$( ctest --help-manual-list 2>/dev/null| | |
grep -v "^ctest version " | sed -e "s/([0-9])$//" )' -- "$cur" ) ) | |
return | |
;; | |
--help-module) | |
COMPREPLY=( $( compgen -W '$( ctest --help-module-list 2>/dev/null| | |
grep -v "^ctest version " )' -- "$cur" ) ) | |
return | |
;; | |
--help-policy) | |
COMPREPLY=( $( compgen -W '$( ctest --help-policy-list 2>/dev/null | | |
grep -v "^ctest version " )' -- "$cur" ) ) | |
return | |
;; | |
--help-property) | |
COMPREPLY=( $( compgen -W '$( ctest --help-property-list \ | |
2>/dev/null | grep -v "^ctest version " )' -- "$cur" ) ) | |
return | |
;; | |
--help-variable) | |
COMPREPLY=( $( compgen -W '$( ctest --help-variable-list \ | |
2>/dev/null | grep -v "^ctest version " )' -- "$cur" ) ) | |
return | |
;; | |
esac | |
if [[ "$cur" == -* ]]; then | |
COMPREPLY=( $(compgen -W '$( _parse_help "$1" --help )' -- ${cur}) ) | |
[[ $COMPREPLY == *= ]] && compopt -o nospace | |
[[ $COMPREPLY ]] && return | |
fi | |
_filedir | |
} && | |
complete -F _ctest ctest | |
# ex: ts=4 sw=4 et filetype=sh |