# builder(1) completion # retrieve branches from current spec _builder_spec_branches() { local cur="$1" spec="$2" res res=$(cvs status -v "$spec" | awk 'NF==3 && /branch:/{print $1}') COMPREPLY=( $( compgen -W "$res" -- "$cur" ) ) } _builder() { local cur prev first COMPREPLY=() cur=`_get_cword` prev=${COMP_WORDS[COMP_CWORD-1]} case "$prev" in -@(g|--get)) _filedir return 0 ;; -r) local spec=*.spec _builder_spec_branches "$cur" "$spec" return 0 ;; --with|--without) ./builder --show-avail-bconds automake.spec return 0 ;; esac if [[ "$cur" == -* ]]; then COMPREPLY=( $( compgen -W ' -5 -a5 -n5 -D -V -a -b -ba -bb -bp -bc -bi -bl -bs -B -c -cf -d -g -h -l -m -nc -ncs -nd -nm -nu -ns -ns0 -nn -ske -q -r -A -R -RB -FRB -sd -sdp -sf -sp -su -T -Tvs -Ts -Tv -Tp -tt -ir -v -u -un -U -Upi -np --with --without ' -- $cur ) ) else # find which specfile to use specfile= for (( i=1; i < COMP_CWORD; i++ )); do if [[ "${COMP_WORDS[i]}" == -@(?(build)file|f) ]]; then specfile=${COMP_WORDS[i+1]} break fi done [ ! -f $specfile ] && return 0 fi return 0 } #complete -F _builder builder