From df70fc4b4b7295f9f5c512c5e1e5c8c46a620944 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Tue, 28 Jan 2014 12:12:38 -0400 Subject: doc: add target rst2man to build man pages using rst2man Many people have docutils installed, but not sphinx. Allow these people to build the man pages. --- doc/prerst2man.py | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 doc/prerst2man.py (limited to 'doc/prerst2man.py') diff --git a/doc/prerst2man.py b/doc/prerst2man.py new file mode 100644 index 00000000..720deb68 --- /dev/null +++ b/doc/prerst2man.py @@ -0,0 +1,62 @@ +from sys import argv +from datetime import date +from os.path import dirname, isdir +from os import makedirs, system +import re + +sourcedir = argv[1] +outdir = argv[2] + +if not isdir(outdir): + makedirs(outdir, 0755) + +execfile(sourcedir + "/conf.py") + + +def header(file, startdocname, command, description, authors, section): + file.write(""" +{0:s} +{1:s} +{2:s} + +:Date: {3:s} +:Version: {4:s} +:Manual section: {5:d} +:Manual group: {6:s} + +""".format( +'-' * len(description), +description, +'-' * len(description), +date.today().isoformat(), release, section, project)) + +blankre = re.compile("^\s*$") +for page in man_pages: + outdirname = outdir + '/' + dirname(page[0]) + if not isdir(outdirname): + makedirs(outdirname, 0755) + filename = outdir + '/' + page[0] + '.rst' + outfile = open(filename, 'w') + infile = open(sourcedir + '/' + page[0] + '.rst', 'r') + + # this is a crude hack. We look for the first blank line, and + # insert the rst2man header there. + # + # XXX consider really parsing input + + count = 0 + lines = infile.readlines() + for line in lines: + outfile.write(line) + if (blankre.match(line)): + break + count = count + 1 + + del lines[0:count + 1] + + header(outfile, *page) + + outfile.write("".join(lines)) + outfile.close() + + os.system('set -x; rst2man {0} {1}'.format(filename, outdir + '/' + page[0] + '.' + str(page[4]))) -- cgit v1.2.3