mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-21 18:38:08 +01:00
2bb906a6dd
As discussed in id:8cc9dd580ad672527e12f43706f9803b2c8e99d8.1405220724.git.wking@tremily.us, execfile is unavailable in python3. The approach of this commit avoids modifying the python module path, which is arguably preferable since it avoids potentially accidentally importing a module from the wrong place.
64 lines
1.4 KiB
Python
64 lines
1.4 KiB
Python
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, 0o755)
|
|
|
|
with open(sourcedir + "/conf.py") as cf:
|
|
exec(cf.read())
|
|
|
|
|
|
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, 0o755)
|
|
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()
|
|
|
|
system('set -x; rst2man {0} {1}/{2}.{3}'
|
|
.format(filename, outdir, page[0], page[4]))
|