summaryrefslogtreecommitdiffstats
path: root/ipalib/cli.py
diff options
context:
space:
mode:
Diffstat (limited to 'ipalib/cli.py')
-rw-r--r--ipalib/cli.py18
1 files changed, 17 insertions, 1 deletions
diff --git a/ipalib/cli.py b/ipalib/cli.py
index d5a5b8429..84dea2e52 100644
--- a/ipalib/cli.py
+++ b/ipalib/cli.py
@@ -1098,7 +1098,8 @@ class cli(backend.Executioner):
def build_parser(self, cmd):
parser = CLIOptionParser(
usage=' '.join(self.usage_iter(cmd)),
- description=cmd.summary,
+ description=unicode(cmd.doc),
+ formatter=IPAHelpFormatter(),
)
option_groups = {}
for option in cmd.options():
@@ -1257,6 +1258,21 @@ class cli(backend.Executioner):
kw[p.name] = self.Backend.textui.decode(raw)
+class IPAHelpFormatter(optparse.IndentedHelpFormatter):
+ """Formatter suitable for printing IPA command help
+
+ The default help formatter reflows text to fit the terminal, but it
+ ignores line/paragraph breaks.
+ IPA's descriptions already have correct line breaks. This formatter
+ doesn't touch them (save for removing initial/trailing whitespace).
+ """
+ def format_description(self, description):
+ if description:
+ return description.strip()
+ else:
+ return ""
+
+
cli_plugins = (
cli,
textui,