Add more complex usage summary for import command

Add a more complex usage summary for the import command, making it
easier to see that '--finish' is a separate mode of operation.

Include a fix to prevent an exception where a command doc string is
not defined.

Change-Id: I1b8d835d0cd9a574d799d2e4abeaf8f19e76ba1b
This commit is contained in:
Darragh Bailey
2015-12-12 17:01:53 +00:00
committed by Darragh Bailey
parent 0d214767e0
commit 2e45b5580c
2 changed files with 19 additions and 6 deletions

View File

@@ -19,6 +19,7 @@
import abc
import argparse
import os
import textwrap
class AppendReplaceAction(argparse._AppendAction):
@@ -46,6 +47,7 @@ class GitUpstreamCommand(object):
"""
__metaclass__ = abc.ABCMeta
usage = ""
def __init__(self, parser):
self.parser = parser
@@ -81,13 +83,17 @@ def _find_actions(subparsers, module_path):
for cmd_class in GitUpstreamCommand.__subclasses__():
command = cmd_class.name
desc = cmd_class.__doc__ or None
help = desc.strip().split('\n')[0]
desc = cmd_class.__doc__ or ''
subparser = subparsers.add_parser(
command,
help=help,
description=desc)
parser_kwargs = {
'help': desc.strip().split('\n')[0],
'description': desc,
}
if cmd_class.usage:
parser_kwargs['usage'] = textwrap.dedent(cmd_class.usage)
subparser = subparsers.add_parser(command, **parser_kwargs)
subparser.register('action', 'append_replace', AppendReplaceAction)
subparser.set_defaults(cmd=cmd_class(subparser))
subcommands[command] = subparser

View File

@@ -36,6 +36,13 @@ class ImportCommand(LogDedentMixin, GitUpstreamCommand):
with those from the import branch, unless --no-merge is specified.
"""
name = "import"
usage = """
%(prog)s [-i] [options] [--onto <branch>]
[--import-branch <import-branch>] [<upstream-branch>]
[<branches> ...]
%(prog)s [--finish] [options] [--onto <branch>]
[--import-branch <import-branch>]
"""
def __init__(self, *args, **kwargs):
super(ImportCommand, self).__init__(*args, **kwargs)