~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/commands.py

  • Committer: Martin Packman
  • Date: 2012-01-05 09:50:04 UTC
  • mfrom: (6424 +trunk)
  • mto: This revision was merged to the branch mainline in revision 6426.
  • Revision ID: martin.packman@canonical.com-20120105095004-mia9xb7y0efmto0v
Merge bzr.dev to resolve conflicts in bzrlib.builtins

Show diffs side-by-side

added added

removed removed

Lines of Context:
14
14
# along with this program; if not, write to the Free Software
15
15
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
16
 
 
17
from __future__ import absolute_import
17
18
 
18
19
# TODO: Define arguments by objects, rather than just using names.
19
20
# Those objects can specify the expected type of the argument, which
50
51
from bzrlib.option import Option
51
52
from bzrlib.plugin import disable_plugins, load_plugins
52
53
from bzrlib import registry
53
 
from bzrlib.symbol_versioning import (
54
 
    deprecated_function,
55
 
    deprecated_in,
56
 
    deprecated_method,
57
 
    )
58
54
 
59
55
 
60
56
class CommandInfo(object):
229
225
    try:
230
226
        return _get_cmd_object(cmd_name, plugins_override)
231
227
    except KeyError:
232
 
        raise errors.BzrCommandError('unknown command "%s"' % cmd_name)
 
228
        raise errors.BzrCommandError(gettext('unknown command "%s"') % cmd_name)
233
229
 
234
230
 
235
231
def _get_cmd_object(cmd_name, plugins_override=True, check_missing=True):
465
461
            usage help (e.g. Purpose, Usage, Options) with a
466
462
            message explaining how to obtain full help.
467
463
        """
468
 
        if self.l10n and not i18n.installed():
 
464
        if self.l10n:
469
465
            i18n.install()  # Install i18n only for get_help_text for now.
470
466
        doc = self.help()
471
467
        if doc:
554
550
                        see_also_links.append(item)
555
551
                    else:
556
552
                        # Use a Sphinx link for this entry
557
 
                        link_text = gettext(":doc:`%s <%s-help>`") % (item, item)
 
553
                        link_text = gettext(":doc:`{0} <{1}-help>`").format(
 
554
                                                                    item, item)
558
555
                        see_also_links.append(link_text)
559
556
                see_also = see_also_links
560
557
            result += gettext(':See also: %s') % ', '.join(see_also) + '\n'
662
659
            opts['quiet'] = trace.is_quiet()
663
660
        elif opts.has_key('quiet'):
664
661
            del opts['quiet']
665
 
 
666
662
        # mix arguments and options into one dictionary
667
663
        cmdargs = _match_argform(self.name(), self.takes_args, args)
668
664
        cmdopts = {}
815
811
    try:
816
812
        options, args = parser.parse_args(args)
817
813
    except UnicodeEncodeError,e:
818
 
        raise errors.BzrCommandError('Only ASCII permitted in option names')
 
814
        raise errors.BzrCommandError(
 
815
            gettext('Only ASCII permitted in option names'))
819
816
 
820
817
    opts = dict([(k, v) for k, v in options.__dict__.iteritems() if
821
818
                 v is not option.OptionParser.DEFAULT_VALUE])
839
836
                argdict[argname + '_list'] = None
840
837
        elif ap[-1] == '+':
841
838
            if not args:
842
 
                raise errors.BzrCommandError("command %r needs one or more %s"
843
 
                                             % (cmd, argname.upper()))
 
839
                raise errors.BzrCommandError(gettext(
 
840
                      "command {0!r} needs one or more {1}").format(
 
841
                      cmd, argname.upper()))
844
842
            else:
845
843
                argdict[argname + '_list'] = args[:]
846
844
                args = []
847
845
        elif ap[-1] == '$': # all but one
848
846
            if len(args) < 2:
849
 
                raise errors.BzrCommandError("command %r needs one or more %s"
850
 
                                             % (cmd, argname.upper()))
 
847
                raise errors.BzrCommandError(
 
848
                      gettext("command {0!r} needs one or more {1}").format(
 
849
                                             cmd, argname.upper()))
851
850
            argdict[argname + '_list'] = args[:-1]
852
851
            args[:-1] = []
853
852
        else:
854
853
            # just a plain arg
855
854
            argname = ap
856
855
            if not args:
857
 
                raise errors.BzrCommandError("command %r requires argument %s"
858
 
                               % (cmd, argname.upper()))
 
856
                raise errors.BzrCommandError(
 
857
                     gettext("command {0!r} requires argument {1}").format(
 
858
                               cmd, argname.upper()))
859
859
            else:
860
860
                argdict[argname] = args.pop(0)
861
861
 
862
862
    if args:
863
 
        raise errors.BzrCommandError("extra argument to command %s: %s"
864
 
                                     % (cmd, args[0]))
 
863
        raise errors.BzrCommandError( gettext(
 
864
                              "extra argument to command {0}: {1}").format(
 
865
                                       cmd, args[0]) )
865
866
 
866
867
    return argdict
867
868
 
957
958
        stats.pprint()
958
959
    else:
959
960
        stats.save(filename)
960
 
        trace.note('Profile data written to "%s".', filename)
 
961
        trace.note(gettext('Profile data written to "%s".'), filename)
961
962
    return ret
962
963
 
963
964
 
1035
1036
 
1036
1037
    argv_copy = []
1037
1038
    i = 0
 
1039
    override_config = []
1038
1040
    while i < len(argv):
1039
1041
        a = argv[i]
1040
1042
        if a == '--profile':
1063
1065
            pass # already handled in startup script Bug #588277
1064
1066
        elif a.startswith('-D'):
1065
1067
            debug.debug_flags.add(a[2:])
 
1068
        elif a.startswith('-O'):
 
1069
            override_config.append(a[2:])
1066
1070
        else:
1067
1071
            argv_copy.append(a)
1068
1072
        i += 1
1069
1073
 
 
1074
    bzrlib.global_state.cmdline_overrides._from_cmdline(override_config)
 
1075
 
1070
1076
    debug.set_debug_flags_from_config()
1071
1077
 
1072
1078
    if not opt_no_plugins:
1124
1130
        if 'memory' in debug.debug_flags:
1125
1131
            trace.debug_memory('Process status after command:', short=False)
1126
1132
        option._verbosity_level = saved_verbosity_level
 
1133
        # Reset the overrides 
 
1134
        bzrlib.global_state.cmdline_overrides._reset()
1127
1135
 
1128
1136
 
1129
1137
def display_command(func):
1158
1166
        "bzr plugin commands")
1159
1167
    Command.hooks.install_named_hook("get_command", _get_external_command,
1160
1168
        "bzr external command lookup")
1161
 
    Command.hooks.install_named_hook("get_missing_command", _try_plugin_provider,
1162
 
        "bzr plugin-provider-db check")
 
1169
    Command.hooks.install_named_hook("get_missing_command",
 
1170
                                     _try_plugin_provider,
 
1171
                                     "bzr plugin-provider-db check")
1163
1172
 
1164
1173
 
1165
1174