Ensures that help alignment is not hard coded

Fixes bug 1086770

Change-Id: I6fa3edea83783e274d78e0c0195bca69d63b6e04
This commit is contained in:
Gary Kotton
2012-12-05 12:17:00 +00:00
parent 9638f754ce
commit d48d35aa9b

View File

@@ -157,6 +157,8 @@ class HelpAction(argparse.Action):
instance, passed in as the "default" value for the action.
"""
def __call__(self, parser, namespace, values, option_string=None):
outputs = []
max_len = 0
app = self.default
parser.print_help(app.stdout)
app.stdout.write('\nCommands for API v%s:\n' % app.api_version)
@@ -165,7 +167,10 @@ class HelpAction(argparse.Action):
factory = ep.load()
cmd = factory(self, None)
one_liner = cmd.get_description().split('\n')[0]
app.stdout.write(' %-25s %s\n' % (name, one_liner))
outputs.append((name, one_liner))
max_len = max(len(name), max_len)
for (name, one_liner) in outputs:
app.stdout.write(' %s %s\n' % (name.ljust(max_len), one_liner))
sys.exit(0)