Auto build and install default man page

Change-Id: I0b6c8442c98b11fd35b3851e7b31b8ebfa1c3785
This commit is contained in:
Darragh Bailey 2016-10-25 12:40:18 +01:00
parent ac76015552
commit b95b257fe1
2 changed files with 23 additions and 3 deletions

View File

@ -20,16 +20,22 @@
import argparse
import datetime
from distutils.core import Command
from distutils.command.build import build
import os
AUTO_BUILD = True
class BuildManpage(Command):
user_options = []
user_options = [
('output=', 'O', 'output file'),
]
command_name = 'build_manpage'
def initialize_options(self):
self._output = self.distribution.get_name() + '.1'
self.output = None
self._see_also = ["git:1"]
self._today = datetime.date.today()
self._commands = self._parser = None
@ -39,6 +45,9 @@ class BuildManpage(Command):
self._commands, self._parser = main.build_parsers()
self._parser.formatter = ManPageFormatter()
if self.output is None:
self.output = self.distribution.get_name() + '.1'
def _markup(self, txt):
return txt.replace('-', '\\-')
@ -113,7 +122,9 @@ class BuildManpage(Command):
manpage.append(self._write_options())
manpage.append(self._write_footer())
manpage.append(self._write_see_also())
stream = open(self._output, 'w')
if not os.path.exists(os.path.dirname(self.output)):
os.makedirs(os.path.dirname(self.output))
stream = open(self.output, 'w')
stream.write(''.join(manpage))
stream.close()
@ -134,3 +145,7 @@ class ManPageFormatter(argparse.ArgumentDefaultsHelpFormatter):
def format_usage(self, usage):
return ManPageFormatter._markup(usage)
if AUTO_BUILD:
build.sub_commands.append(('build_manpage', None))

View File

@ -24,6 +24,7 @@ commands = build_manpage.BuildManpage
[pbr]
skip_changelog = True
manpages = build/man/git-upstream.1
[files]
packages =
@ -39,4 +40,8 @@ console_scripts =
git-upstream = git_upstream.main:main
rebase-editor = git_upstream.rebase_editor:main
[build_manpage]
output = build/man/git-upstream.1
[easy_install]