~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/commands.py

merge trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2010 Canonical Ltd
 
1
# Copyright (C) 2005-2011 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
687
687
 
688
688
        self._setup_outf()
689
689
 
690
 
        return self.run(**all_cmd_args)
 
690
        try:
 
691
            return self.run(**all_cmd_args)
 
692
        finally:
 
693
            # reset it, so that other commands run in the same process won't
 
694
            # inherit state. Before we reset it, log any activity, so that it
 
695
            # gets properly tracked.
 
696
            ui.ui_factory.log_transport_activity(
 
697
                display=('bytes' in debug.debug_flags))
 
698
            trace.set_verbosity_level(0)
691
699
 
692
700
    def _setup_run(self):
693
701
        """Wrap the defined run method on self with a cleanup.
810
818
    else:
811
819
        args = argv
812
820
 
813
 
    options, args = parser.parse_args(args)
 
821
    # for python 2.5 and later, optparse raises this exception if a non-ascii
 
822
    # option name is given.  See http://bugs.python.org/issue2931
 
823
    try:
 
824
        options, args = parser.parse_args(args)
 
825
    except UnicodeEncodeError,e:
 
826
        raise errors.BzrCommandError('Only ASCII permitted in option names')
 
827
 
814
828
    opts = dict([(k, v) for k, v in options.__dict__.iteritems() if
815
829
                 v is not option.OptionParser.DEFAULT_VALUE])
816
830
    return args, opts
1191
1205
    argv = _specified_or_unicode_argv(argv)
1192
1206
    _register_builtin_commands()
1193
1207
    ret = run_bzr_catch_errors(argv)
1194
 
    bzrlib.ui.ui_factory.log_transport_activity(
1195
 
        display=('bytes' in debug.debug_flags))
1196
1208
    trace.mutter("return code %d", ret)
1197
1209
    return ret
1198
1210