diff --git a/doc/utils/build_manpage.py b/doc/utils/build_manpage.py index ed46907..29e0716 100644 --- a/doc/utils/build_manpage.py +++ b/doc/utils/build_manpage.py @@ -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)) diff --git a/setup.cfg b/setup.cfg index 23d2fc3..fe10bd2 100644 --- a/setup.cfg +++ b/setup.cfg @@ -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]