ardupilot/Tools/completion/bash/_waf

68 lines
1.6 KiB
Bash

#!/usr/bin/env bash
_waf()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"
# TODO: generate for waf help
opts="--help -h"
opts+=" -j --jobs"
opts+=" -v --verbose"
opts+=" --debug"
opts+=" --bootloader"
opts+=" --default-parameters"
opts+=" --enable-sfml"
opts+=" --enable-sfml-audio"
opts+=" --sitl-osd"
opts+=" --sitl-rgbled"
opts+=" --build-dates"
opts+=" --sitl-flash-storage"
opts+=" --upload"
opts+=" --board"
opts+=" AP_Periph"
opts+=" copter"
opts+=" heli"
opts+=" plane"
opts+=" rover"
opts+=" sub"
opts+=" antennatracker"
opts+=" tools"
opts+=" examples"
opts+=" bootloader"
opts+=" iofirmware"
opts+=" list"
opts+=" all"
opts+=" build"
opts+=" configure"
opts+=" clean"
opts+=" distclean"
# Prevent word reuse TODO: add -vvv case
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
case $prev in
--board)
# get options between board and debug, remove everything before "are", remove everything after "--debug", remove final dot, remove all comma
opts=$(./waf --help | sed -n '/--board=/,/--debug/p' | sed -e 's/.*are //g' -e 's/\(--debug.*\)//g' -e 's/[.]//g' -e 's/[,]//g')
COMPREPLY=($(compgen -W "${opts}" -- ${cur}))
return 0
;;
esac
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
}
complete -F _waf waf