~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/commands.py

  • Committer: Martin Pool
  • Date: 2005-04-15 08:26:52 UTC
  • Revision ID: mbp@sourcefrog.net-20050415082652-a3050f7be47c3b73
- Add command aliases

Show diffs side-by-side

added added

removed removed

Lines of Context:
116
116
 
117
117
 
118
118
 
 
119
cmd_aliases = {
 
120
    '?':         'help',
 
121
    'ci':        'commit',
 
122
    'checkin':   'commit',
 
123
    'di':        'diff',
 
124
    'st':        'status',
 
125
    'stat':      'status',
 
126
    }
 
127
 
 
128
 
 
129
def get_cmd_handler(cmd):
 
130
    assert isinstance(cmd, str)
 
131
    
 
132
    cmd = cmd_aliases.get(cmd, cmd)
 
133
    
 
134
    try:
 
135
        cmd_handler = globals()['cmd_' + cmd.replace('-', '_')]
 
136
    except KeyError:
 
137
        raise BzrError("unknown command %r" % cmd)
 
138
 
 
139
    return cmd, cmd_handler
 
140
 
 
141
 
119
142
 
120
143
def cmd_status(all=False):
121
144
    """Display status summary.
711
734
        return
712
735
 
713
736
    # otherwise, maybe the name of a command?
714
 
    try:
715
 
        cmdfn = globals()['cmd_' + topic.replace('-', '_')]
716
 
    except KeyError:
717
 
        bailout("no help for %r" % topic)
 
737
    topic, cmdfn = get_cmd_handler(topic)
718
738
 
719
739
    doc = getdoc(cmdfn)
720
740
    if doc == None:
962
982
        log_error('  try "bzr help"')
963
983
        return 1
964
984
 
965
 
    try:
966
 
        cmd_handler = globals()['cmd_' + cmd.replace('-', '_')]
967
 
    except KeyError:
968
 
        bailout("unknown command " + `cmd`)
 
985
    canonical_cmd, cmd_handler = get_cmd_handler(cmd)
969
986
 
970
987
    # global option
971
988
    if 'profile' in opts:
975
992
        profile = False
976
993
 
977
994
    # check options are reasonable
978
 
    allowed = cmd_options.get(cmd, [])
 
995
    allowed = cmd_options.get(canonical_cmd, [])
979
996
    for oname in opts:
980
997
        if oname not in allowed:
981
998
            bailout("option %r is not allowed for command %r"
986
1003
    # options" (it is an oxymoron)
987
1004
 
988
1005
    # mix arguments and options into one dictionary
989
 
    cmdargs = _match_args(cmd, args)
 
1006
    cmdargs = _match_args(canonical_cmd, args)
990
1007
    for k, v in opts.items():
991
1008
        cmdargs[k.replace('-', '_')] = v
992
1009