46
from bzrlib.hooks import Hooks
49
from bzrlib.hooks import HookPoint, Hooks
47
50
# Compatibility - Option used to be in commands.
48
51
from bzrlib.option import Option
49
52
from bzrlib.plugin import disable_plugins, load_plugins
396
397
sys.stdout is forced to be a binary stream, and line-endings
397
398
will not mangled.
400
A string indicating the real name under which this command was
401
invoked, before expansion of aliases.
402
(This may be None if the command was constructed and run in-process.)
404
400
:cvar hooks: An instance of CommandHooks.
406
401
:ivar __doc__: The help shown by 'bzr help command' for this command.
407
402
This is set by assigning explicitly to __doc__ so that -OO can
785
775
These are all empty initially, because by default nothing should get
788
Hooks.__init__(self, "bzrlib.commands", "Command.hooks")
789
self.add_hook('extend_command',
779
self.create_hook(HookPoint('extend_command',
790
780
"Called after creating a command object to allow modifications "
791
781
"such as adding or removing options, docs etc. Called with the "
792
"new bzrlib.commands.Command object.", (1, 13))
793
self.add_hook('get_command',
782
"new bzrlib.commands.Command object.", (1, 13), None))
783
self.create_hook(HookPoint('get_command',
794
784
"Called when creating a single command. Called with "
795
785
"(cmd_or_None, command_name). get_command should either return "
796
786
"the cmd_or_None parameter, or a replacement Command object that "
797
787
"should be used for the command. Note that the Command.hooks "
798
788
"hooks are core infrastructure. Many users will prefer to use "
799
789
"bzrlib.commands.register_command or plugin_cmds.register_lazy.",
801
self.add_hook('get_missing_command',
791
self.create_hook(HookPoint('get_missing_command',
802
792
"Called when creating a single command if no command could be "
803
793
"found. Called with (command_name). get_missing_command should "
804
794
"either return None, or a Command object to be used for the "
806
self.add_hook('list_commands',
795
"command.", (1, 17), None))
796
self.create_hook(HookPoint('list_commands',
807
797
"Called when enumerating commands. Called with a set of "
808
798
"cmd_name strings for all the commands found so far. This set "
809
799
" is safe to mutate - e.g. to remove a command. "
810
800
"list_commands should return the updated set of command names.",
813
803
Command.hooks = CommandHooks()
1044
1034
Specify the number of processes that can be run concurrently (selftest).
1046
1036
trace.mutter("bazaar version: " + bzrlib.__version__)
1047
argv = _specified_or_unicode_argv(argv)
1048
1038
trace.mutter("bzr arguments: %r", argv)
1050
1040
opt_lsprof = opt_profile = opt_no_plugins = opt_builtin = \
1213
1203
:return: exit code of bzr command.
1215
if argv is not None:
1205
argv = _specified_or_unicode_argv(argv)
1217
1206
_register_builtin_commands()
1218
1207
ret = run_bzr_catch_errors(argv)
1219
1208
trace.mutter("return code %d", ret)