Răsfoiți Sursa

More improvements on build_manpage

oz123 10 ani în urmă
părinte
comite
26c873a53a
1 a modificat fișierele cu 17 adăugiri și 23 ștergeri
  1. 17 23
      build_manpage.py

+ 17 - 23
build_manpage.py

@@ -73,6 +73,7 @@ class BuildManPage(Command):
         try:
             mod = __import__(mod_name, fromlist=fromlist)
             self._parser = getattr(mod, func_name)(formatter_class=ManPageFormatter)
+
         except ImportError as err:
             raise err
 
@@ -87,18 +88,18 @@ class BuildManPage(Command):
         appname = self.distribution.get_name()
         ret = []
 
-        ret.append(self._parser.formatter_class._mk_title(self._parser._get_formatter(),
-                                                          appname))
+        formater = self._parser._get_formatter()
+        ret.append(self._parser.formatter_class._mk_title(formater, appname))
         description = self.distribution.get_description()
 
-        ret.append(self._parser.formatter_class._make_name(self._parser._get_formatter(),
-                                                             self._parser))
+        ret.append(self._parser.formatter_class._make_name(formater,
+                                                           self._parser))
         self._parser._prog = appname
-        ret.append(self._parser.formatter_class._mk_synopsis(self._parser._get_formatter(),
+        ret.append(self._parser.formatter_class._mk_synopsis(formater,
                                                              self._parser))
+        formater.long_desc = self.distribution.get_description()
+        ret.append(self._parser.formatter_class._mk_description(formater))
 
-        ret.append(self._parser.formatter_class._mk_description(self._parser._get_formatter(),
-                                                                self.distribution))
         return ''.join(ret)
 
     def _write_options(self):
@@ -113,7 +114,7 @@ class BuildManPage(Command):
         appname = self.distribution.get_name()
         homepage = self.distribution.get_url()
         sections = {'authors': ("pwman3 was originally written by Ivan Kelly "
-                                "<ivan@ivankelly.net>. pwman3 is now maintained "
+                                "<ivan@ivankelly.net>.\n pwman3 is now maintained "
                                 "by Oz Nahum <nahumoz@gmail.com>."),
                     'distribution': ("The latest version of {} may be "
                                      "downloaded from {}".format(appname,
@@ -156,8 +157,8 @@ class ManPageFormatter(argparse.HelpFormatter):
                  max_help_position=24,
                  width=None,
                  section=1,
-                 desc = None,
-                 long_desc = None,
+                 desc=None,
+                 long_desc=None,
                  authors=None,
                  distribution=None):
 
@@ -167,6 +168,9 @@ class ManPageFormatter(argparse.HelpFormatter):
         self._section = 1
         self._today = datetime.date.today().strftime('%Y\\-%m\\-%d')
 
+    def _get_formatter(self, **kwargs):
+        return self.formatter_class(prog=self.prog, **kwargs)
+
     def _markup(self, txt):
         return txt.replace('-', '\\-')
 
@@ -192,7 +196,6 @@ class ManPageFormatter(argparse.HelpFormatter):
         return usage
 
     def _mk_title(self, prog):
-
         return '.TH {0} {1} {2}\n'.format(prog, self._section,
                                           self._today)
 
@@ -203,19 +206,10 @@ class ManPageFormatter(argparse.HelpFormatter):
         """
         return '.SH NAME\n%s \\- %s\n' % (parser.prog,
                                           parser.description)
-    def _mk_name(self, distribution):
-        """
-        obsolete, replaced by _make_name
-        """
-        return '.SH NAME\n%s \\- %s\n' % (distribution.get_name(),
-                                          distribution.get_description())
-
-    def _mk_description(self, distribution):
-
-        long_desc = distribution.get_long_description()
 
-        if long_desc:
-            long_desc = long_desc.replace('\n', '\n.br\n')
+    def _mk_description(self):
+        if self.long_desc:
+            long_desc = self.long_desc.replace('\n', '\n.br\n')
             return '.SH DESCRIPTION\n%s\n' % self._markup(long_desc)
         else:
             return ''