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:
committed by
Darragh Bailey
parent
0d214767e0
commit
2e45b5580c
@@ -19,6 +19,7 @@
|
|||||||
import abc
|
import abc
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
|
import textwrap
|
||||||
|
|
||||||
|
|
||||||
class AppendReplaceAction(argparse._AppendAction):
|
class AppendReplaceAction(argparse._AppendAction):
|
||||||
@@ -46,6 +47,7 @@ class GitUpstreamCommand(object):
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
__metaclass__ = abc.ABCMeta
|
__metaclass__ = abc.ABCMeta
|
||||||
|
usage = ""
|
||||||
|
|
||||||
def __init__(self, parser):
|
def __init__(self, parser):
|
||||||
self.parser = parser
|
self.parser = parser
|
||||||
@@ -81,13 +83,17 @@ def _find_actions(subparsers, module_path):
|
|||||||
|
|
||||||
for cmd_class in GitUpstreamCommand.__subclasses__():
|
for cmd_class in GitUpstreamCommand.__subclasses__():
|
||||||
command = cmd_class.name
|
command = cmd_class.name
|
||||||
desc = cmd_class.__doc__ or None
|
desc = cmd_class.__doc__ or ''
|
||||||
help = desc.strip().split('\n')[0]
|
|
||||||
|
|
||||||
subparser = subparsers.add_parser(
|
parser_kwargs = {
|
||||||
command,
|
'help': desc.strip().split('\n')[0],
|
||||||
help=help,
|
'description': desc,
|
||||||
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.register('action', 'append_replace', AppendReplaceAction)
|
||||||
subparser.set_defaults(cmd=cmd_class(subparser))
|
subparser.set_defaults(cmd=cmd_class(subparser))
|
||||||
subcommands[command] = subparser
|
subcommands[command] = subparser
|
||||||
|
|||||||
@@ -36,6 +36,13 @@ class ImportCommand(LogDedentMixin, GitUpstreamCommand):
|
|||||||
with those from the import branch, unless --no-merge is specified.
|
with those from the import branch, unless --no-merge is specified.
|
||||||
"""
|
"""
|
||||||
name = "import"
|
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):
|
def __init__(self, *args, **kwargs):
|
||||||
super(ImportCommand, self).__init__(*args, **kwargs)
|
super(ImportCommand, self).__init__(*args, **kwargs)
|
||||||
|
|||||||
Reference in New Issue
Block a user