1
 
# Programmable completion for the Bazaar-NG bzr command under bash. Source
 
2
 
# this file (or on some systems add it to ~/.bash_completion and start a new
 
3
 
# shell) and bash's completion mechanism will know all about bzr's options!
 
5
 
# Known to work with bash 2.05a with programmable completion and extended
 
6
 
# pattern matching enabled (use 'shopt -s extglob progcomp' to enable
 
7
 
# these if they are not already enabled).
 
9
 
# Based originally on the svn bash completition script.
 
10
 
# Customized by Sven Wilhelm/Icecrash.com
 
14
 
        local cur cmds cmdOpts opt helpCmds optBase i
 
17
 
        cur=${COMP_WORDS[COMP_CWORD]}
 
19
 
        cmds='status diff commit ci checkin move remove log info check ignored'
 
21
 
        if [[ $COMP_CWORD -eq 1 ]] ; then
 
22
 
                COMPREPLY=( $( compgen -W "$cmds" -- $cur ) )
 
26
 
        # if not typing an option, or if the previous option required a
 
27
 
        # parameter, then fallback on ordinary filename expansion
 
28
 
        helpCmds='help|--help|h|\?'
 
29
 
        if [[ ${COMP_WORDS[1]} != @($helpCmds) ]] && \
 
30
 
           [[ "$cur" != -* ]] ; then
 
35
 
        case ${COMP_WORDS[1]} in
 
37
 
                cmdOpts="--all --show-ids"
 
40
 
                cmdOpts="-r --revision --diff-options"
 
43
 
                cmdOpts="-r --message -F --file -v --verbose"
 
49
 
                cmdOpts="-v --verbose"
 
52
 
                cmdOpts="--forward --timezone -v --verbose --show-ids -r --revision"
 
64
 
                cmdOpts="$cmds $qOpts"
 
70
 
        cmdOpts="$cmdOpts --help -h"
 
72
 
        # take out options already given
 
73
 
        for (( i=2; i<=$COMP_CWORD-1; ++i )) ; do
 
77
 
                --*)    optBase=${opt/=*/} ;;
 
78
 
                -*)     optBase=${opt:0:2} ;;
 
82
 
                cmdOpts=${cmdOpts/ ${optBase} / }
 
84
 
                # take out alternatives
 
86
 
                -v)              cmdOpts=${cmdOpts/ --verbose / } ;;
 
87
 
                --verbose)       cmdOpts=${cmdOpts/ -v / } ;;
 
88
 
                -h)              cmdOpts=${cmdOpts/ --help / } ;;
 
89
 
                --help)          cmdOpts=${cmdOpts/ -h / } ;;
 
90
 
                -r)              cmdOpts=${cmdOpts/ --revision / } ;;
 
91
 
                --revision)      cmdOpts=${cmdOpts/ -r / } ;;
 
94
 
                # skip next option if this one requires a parameter
 
95
 
                if [[ $opt == @($optsParam) ]] ; then
 
100
 
        COMPREPLY=( $( compgen -W "$cmdOpts" -- $cur ) )
 
104
 
complete -F _bzr -o default bzr