/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to contrib/bash/bzr

  • Committer: Martin Pool
  • Date: 2005-08-24 08:59:32 UTC
  • Revision ID: mbp@sourcefrog.net-20050824085932-c61f1f1f1c930e13
- Add a simple UIFactory 

  The idea of this is to let a client of bzrlib set some 
  policy about how output is displayed.

  In this revision all that's done is that progress bars
  are constructed by a policy established by the application
  rather than being randomly constructed in the library 
  or passed down the calls.  This avoids progress bars
  popping up while running the test suite and cleans up
  some code.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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!
 
4
 
 
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).
 
8
 
 
9
# Based originally on the svn bash completition script.
 
10
# Customized by Sven Wilhelm/Icecrash.com
 
11
 
 
12
_bzr ()
 
13
{
 
14
        local cur cmds cmdOpts opt helpCmds optBase i
 
15
 
 
16
        COMPREPLY=()
 
17
        cur=${COMP_WORDS[COMP_CWORD]}
 
18
 
 
19
        cmds='status diff commit ci checkin move remove log info check ignored'
 
20
 
 
21
        if [[ $COMP_CWORD -eq 1 ]] ; then
 
22
                COMPREPLY=( $( compgen -W "$cmds" -- $cur ) )
 
23
                return 0
 
24
        fi
 
25
 
 
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
 
31
                return 0
 
32
        fi
 
33
 
 
34
        cmdOpts=
 
35
        case ${COMP_WORDS[1]} in
 
36
        status)
 
37
                cmdOpts="--all --show-ids"
 
38
                ;;
 
39
        diff)
 
40
                cmdOpts="-r --revision --diff-options"
 
41
                ;;
 
42
        commit|ci|checkin)
 
43
                cmdOpts="-r --message -F --file -v --verbose"
 
44
                ;;
 
45
        move)
 
46
                cmdOpts=""
 
47
                ;;
 
48
        remove)
 
49
                cmdOpts="-v --verbose"
 
50
                ;;
 
51
        log)
 
52
                cmdOpts="--forward --timezone -v --verbose --show-ids -r --revision"
 
53
                ;;
 
54
        info)
 
55
                cmdOpts=""
 
56
                ;;
 
57
        ignored)
 
58
                cmdOpts=""
 
59
                ;;
 
60
        check)
 
61
                cmdOpts=""
 
62
                ;;
 
63
        help|h|\?)
 
64
                cmdOpts="$cmds $qOpts"
 
65
                ;;
 
66
        *)
 
67
                ;;
 
68
        esac
 
69
 
 
70
        cmdOpts="$cmdOpts --help -h"
 
71
 
 
72
        # take out options already given
 
73
        for (( i=2; i<=$COMP_CWORD-1; ++i )) ; do
 
74
                opt=${COMP_WORDS[$i]}
 
75
 
 
76
                case $opt in
 
77
                --*)    optBase=${opt/=*/} ;;
 
78
                -*)     optBase=${opt:0:2} ;;
 
79
                esac
 
80
 
 
81
                cmdOpts=" $cmdOpts "
 
82
                cmdOpts=${cmdOpts/ ${optBase} / }
 
83
 
 
84
                # take out alternatives
 
85
                case $optBase in
 
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 / } ;;
 
92
                esac
 
93
 
 
94
                # skip next option if this one requires a parameter
 
95
                if [[ $opt == @($optsParam) ]] ; then
 
96
                        ((++i))
 
97
                fi
 
98
        done
 
99
 
 
100
        COMPREPLY=( $( compgen -W "$cmdOpts" -- $cur ) )
 
101
 
 
102
        return 0
 
103
}
 
104
complete -F _bzr -o default bzr