From e752ebe2e3e77c00ac7fcb463bd8947eda602072 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 4 Jul 2017 08:47:39 +0530 Subject: [PATCH] Code to easily generate man pages via sphinx-build --- manual/custom.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/manual/custom.py b/manual/custom.py index 7875842838..ec8b32ca1b 100644 --- a/manual/custom.py +++ b/manual/custom.py @@ -253,12 +253,9 @@ def mark_options(raw): return raw -def cli_docs(app): - info = app.builder.info - info(bold('creating CLI documentation...')) +def get_cli_docs(): documented_cmds = [] undocumented_cmds = [] - for script in entry_points['console_scripts'] + entry_points['gui_scripts']: module = script[script.index('=')+1:script.index(':')].strip() cmd = script[:script.index('=')].strip() @@ -272,6 +269,13 @@ def cli_docs(app): documented_cmds.append((cmd, getattr(module, 'option_parser')(cmd))) else: undocumented_cmds.append(cmd) + return documented_cmds, undocumented_cmds + + +def cli_docs(app): + info = app.builder.info + info(bold('creating CLI documentation...')) + documented_cmds, undocumented_cmds = get_cli_docs() documented_cmds.sort(cmp=lambda x, y: cmp(x[0], y[0])) undocumented_cmds.sort() @@ -338,8 +342,20 @@ def guilabel_role(typ, rawtext, text, *args, **kwargs): return menusel_role(typ, rawtext, text, *args, **kwargs) +def setup_man_pages(app): + documented_cmds = get_cli_docs()[0] + man_pages = [] + for cmd, option_parser in documented_cmds: + path = 'generated/%s/%s' % (app.config.language, cmd) + man_pages.append(( + path, cmd, cmd, 'Kovid Goyal', 1 + )) + app.config['man_pages'] = man_pages + + def setup(app): from docutils.parsers.rst import roles + setup_man_pages(app) app.add_builder(EPUBHelpBuilder) app.add_builder(LaTeXHelpBuilder) app.connect('source-read', source_read_handler)