~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/commands.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2010-02-01 12:53:09 UTC
  • mfrom: (4988.6.2 private-serialise-inv)
  • Revision ID: pqm@pqm.ubuntu.com-20100201125309-4nitvjqjlp05b7vt
(Jelmer) Make Repository.serialise_inventory private.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2010 Canonical Ltd
 
1
# Copyright (C) 2006, 2008, 2009 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
59
59
    deprecated_function,
60
60
    deprecated_in,
61
61
    deprecated_method,
 
62
    suppress_deprecation_warnings,
62
63
    )
63
64
 
64
65
 
185
186
    return plugin_cmds.keys()
186
187
 
187
188
 
 
189
@deprecated_function(deprecated_in((1, 17, 0)))
 
190
def get_all_cmds(plugins_override=False):
 
191
    """Return canonical name and class for most commands.
 
192
    
 
193
    NB: This does not return all commands since the introduction of
 
194
    command hooks, and returning the class is not sufficient to 
 
195
    get correctly setup commands, which is why it is deprecated.
 
196
 
 
197
    Use 'all_command_names' + 'get_cmd_object' instead.
 
198
    """
 
199
    d = _builtin_commands()
 
200
    if plugins_override:
 
201
        d.update(plugin_cmds.iteritems())
 
202
    for k, v in d.iteritems():
 
203
        yield k,v
 
204
 
 
205
 
188
206
def get_cmd_object(cmd_name, plugins_override=True):
189
207
    """Return the command object for a command.
190
208
 
606
624
 
607
625
    def run_argv_aliases(self, argv, alias_argv=None):
608
626
        """Parse the command line and run with extra aliases in alias_argv."""
 
627
        if argv is None:
 
628
            warn("Passing None for [] is deprecated from bzrlib 0.10",
 
629
                 DeprecationWarning, stacklevel=2)
 
630
            argv = []
609
631
        args, opts = parse_args(self, argv, alias_argv)
610
632
 
611
633
        # Process the standard options
1077
1099
        "bzr plugin-provider-db check")
1078
1100
 
1079
1101
 
1080
 
 
1081
 
def _specified_or_unicode_argv(argv):
1082
 
    # For internal or testing use, argv can be passed.  Otherwise, get it from
1083
 
    # the process arguments in a unicode-safe way.
 
1102
def main(argv=None):
 
1103
    """Main entry point of command-line interface.
 
1104
 
 
1105
    :param argv: list of unicode command-line arguments similar to sys.argv.
 
1106
        argv[0] is script name usually, it will be ignored.
 
1107
        Don't pass here sys.argv because this list contains plain strings
 
1108
        and not unicode; pass None instead.
 
1109
 
 
1110
    :return: exit code of bzr command.
 
1111
    """
 
1112
    import bzrlib.ui
 
1113
    bzrlib.ui.ui_factory = bzrlib.ui.make_ui_for_terminal(
 
1114
        sys.stdin, sys.stdout, sys.stderr)
 
1115
 
 
1116
    # Is this a final release version? If so, we should suppress warnings
 
1117
    if bzrlib.version_info[3] == 'final':
 
1118
        suppress_deprecation_warnings(override=True)
1084
1119
    if argv is None:
1085
 
        return osutils.get_unicode_argv()
 
1120
        argv = osutils.get_unicode_argv()
1086
1121
    else:
1087
1122
        new_argv = []
1088
1123
        try:
1094
1129
                    new_argv.append(a.decode('ascii'))
1095
1130
        except UnicodeDecodeError:
1096
1131
            raise errors.BzrError("argv should be list of unicode strings.")
1097
 
        return new_argv
1098
 
 
1099
 
 
1100
 
def main(argv=None):
1101
 
    """Main entry point of command-line interface.
1102
 
 
1103
 
    Typically `bzrlib.initialize` should be called first.
1104
 
 
1105
 
    :param argv: list of unicode command-line arguments similar to sys.argv.
1106
 
        argv[0] is script name usually, it will be ignored.
1107
 
        Don't pass here sys.argv because this list contains plain strings
1108
 
        and not unicode; pass None instead.
1109
 
 
1110
 
    :return: exit code of bzr command.
1111
 
    """
1112
 
    argv = _specified_or_unicode_argv(argv)
 
1132
        argv = new_argv
1113
1133
    ret = run_bzr_catch_errors(argv)
1114
1134
    bzrlib.ui.ui_factory.log_transport_activity(
1115
1135
        display=('bytes' in debug.debug_flags))
1116
1136
    trace.mutter("return code %d", ret)
 
1137
    osutils.report_extension_load_failures()
1117
1138
    return ret
1118
1139
 
1119
1140
 
1123
1144
    This function assumed that that UI layer is setup, that symbol deprecations
1124
1145
    are already applied, and that unicode decoding has already been performed on argv.
1125
1146
    """
1126
 
    # done here so that they're covered for every test run
1127
1147
    install_bzr_command_hooks()
1128
1148
    return exception_to_return_code(run_bzr, argv)
1129
1149
 
1134
1154
    This is used for the test suite, and might be useful for other programs
1135
1155
    that want to wrap the commandline interface.
1136
1156
    """
1137
 
    # done here so that they're covered for every test run
1138
1157
    install_bzr_command_hooks()
1139
1158
    try:
1140
1159
        return run_bzr(argv)
1190
1209
            yield provider
1191
1210
 
1192
1211
command_providers_registry = ProvidersRegistry()
 
1212
 
 
1213
 
 
1214
if __name__ == '__main__':
 
1215
    sys.exit(main(sys.argv))