mirror of https://github.com/ArduPilot/ardupilot
56 lines
1.3 KiB
Bash
56 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
_ap_autotest() {
|
|
local cur prev opts
|
|
COMPREPLY=()
|
|
cur="${COMP_WORDS[COMP_CWORD]}"
|
|
prev="${COMP_WORDS[COMP_CWORD - 1]}"
|
|
|
|
case "$cur" in
|
|
-*)
|
|
# TODO: generate for waf help
|
|
opts="--help -h"
|
|
opts+=" -j"
|
|
opts+=" --skip"
|
|
opts+=" --list"
|
|
opts+=" --list-subtests"
|
|
opts+=" --viewerip"
|
|
opts+=" --map"
|
|
opts+=" --experimental"
|
|
opts+=" --timeout"
|
|
opts+=" --frame"
|
|
opts+=" --show-test-timings"
|
|
opts+=" --validate-parameters"
|
|
opts+=" --no-configure"
|
|
opts+=" --waf-configure-args"
|
|
opts+=" --no-clean"
|
|
opts+=" --debug"
|
|
opts+=" --speedup"
|
|
opts+=" --valgrind"
|
|
opts+=" --gdb"
|
|
opts+=" --gdbserver"
|
|
opts+=" --lldb"
|
|
opts+=" -B --breakpoint"
|
|
opts+=" --disable-breakpoints"
|
|
;;
|
|
*)
|
|
# get the calling program, remove anything after the space == all commands arguments
|
|
local caller
|
|
caller=$(echo $@ | sed 's/ .*//g')
|
|
opts=$($caller --list)
|
|
;;
|
|
# TODO: add completion for subtests and skip list
|
|
esac
|
|
# Prevent word reuse
|
|
lim=$((COMP_CWORD - 1))
|
|
for i in $(seq 0 $lim); do
|
|
if [[ $opts == *"${COMP_WORDS[i]}"* ]]; then
|
|
opts=${opts//${COMP_WORDS[i]}/}
|
|
opts=${opts//--${COMP_WORDS[i]}/}
|
|
fi
|
|
done
|
|
COMPREPLY=($(compgen -W "${opts}" -- ${cur}))
|
|
}
|
|
|
|
complete -F _ap_autotest autotest.py
|