#!/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) opts=$(./waf list_boards | sed -e '$d') COMPREPLY=($(compgen -W "${opts}" -- ${cur})) return 0 ;; esac COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) ) } complete -F _waf waf