From d3639c53d56feaea81474ffd28395a124744dab7 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Tue, 25 Feb 2020 15:12:37 -0500 Subject: [PATCH] subcmds: centralize all_commands logic The branch->branches alias is setup in the main module when that really belongs in the existing all_commands setup. For help, rather than monkey patching all_commands to the class, switch it to use the state directly from the module. This makes it a bit more obvious where it's coming from rather than this one subcommand having a |commands| member added externally to it. Change-Id: I0200def09bf4774cad8012af0f4ae60ea3089dc0 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/259153 Tested-by: Mike Frysinger Reviewed-by: David Pursehouse --- main.py | 2 -- subcmds/__init__.py | 4 ++-- subcmds/help.py | 13 +++++++------ 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/main.py b/main.py index 98234cbf..b309fad3 100755 --- a/main.py +++ b/main.py @@ -135,8 +135,6 @@ class _Repo(object): def __init__(self, repodir): self.repodir = repodir self.commands = all_commands - # add 'branch' as an alias for 'branches' - all_commands['branch'] = all_commands['branches'] def _ParseArgs(self, argv): """Parse the main `repo` command line options.""" diff --git a/subcmds/__init__.py b/subcmds/__init__.py index 9cc94718..a49e7bd3 100644 --- a/subcmds/__init__.py +++ b/subcmds/__init__.py @@ -46,5 +46,5 @@ for py in os.listdir(my_dir): cmd.NAME = name all_commands[name] = cmd -if 'help' in all_commands: - all_commands['help'].commands = all_commands +# Add 'branch' as an alias for 'branches'. +all_commands['branch'] = all_commands['branches'] diff --git a/subcmds/help.py b/subcmds/help.py index 36b3a7ae..5e24ed0b 100644 --- a/subcmds/help.py +++ b/subcmds/help.py @@ -19,6 +19,7 @@ import re import sys from formatter import AbstractFormatter, DumbWriter +from subcmds import all_commands from color import Coloring from command import PagedCommand, MirrorSafeCommand, GitcAvailableCommand, GitcClientCommand import gitc_utils @@ -42,7 +43,7 @@ Displays detailed usage information about a command. fmt = ' %%-%ds %%s' % maxlen for name in commandNames: - command = self.commands[name] + command = all_commands[name] try: summary = command.helpSummary.strip() except AttributeError: @@ -52,7 +53,7 @@ Displays detailed usage information about a command. def _PrintAllCommands(self): print('usage: repo COMMAND [ARGS]') print('The complete list of recognized repo commands are:') - commandNames = list(sorted(self.commands)) + commandNames = list(sorted(all_commands)) self._PrintCommands(commandNames) print("See 'repo help ' for more information on a " 'specific command.') @@ -73,7 +74,7 @@ Displays detailed usage information about a command. return False commandNames = list(sorted([name - for name, command in self.commands.items() + for name, command in all_commands.items() if command.common and gitc_supported(command)])) self._PrintCommands(commandNames) @@ -132,8 +133,8 @@ Displays detailed usage information about a command. out._PrintSection('Description', 'helpDescription') def _PrintAllCommandHelp(self): - for name in sorted(self.commands): - cmd = self.commands[name] + for name in sorted(all_commands): + cmd = all_commands[name] cmd.manifest = self.manifest self._PrintCommandHelp(cmd, header_prefix='[%s] ' % (name,)) @@ -158,7 +159,7 @@ Displays detailed usage information about a command. name = args[0] try: - cmd = self.commands[name] + cmd = all_commands[name] except KeyError: print("repo: '%s' is not a repo command." % name, file=sys.stderr) sys.exit(1)