2008-10-09 09:34:33 -07:00
|
|
|
#!/usr/bin/env python
|
|
|
|
|
|
|
|
"""
|
|
|
|
Fix references to source files of the form [LOCpath]
|
|
|
|
so that they are relative to a given source directory.
|
2008-10-24 13:29:33 -07:00
|
|
|
|
|
|
|
Substitute the DOT-generated image map into the document.
|
2008-10-09 09:34:33 -07:00
|
|
|
"""
|
|
|
|
|
|
|
|
import os, sys, re
|
|
|
|
|
|
|
|
(srcdir, ) = sys.argv[1:]
|
|
|
|
srcdir = os.path.realpath(srcdir)
|
|
|
|
|
|
|
|
f = re.compile(r'\[LOC(.*?)\]')
|
|
|
|
|
|
|
|
def replacer(m):
|
|
|
|
file = m.group(1)
|
|
|
|
file = os.path.realpath(file)
|
|
|
|
if not file.startswith(srcdir):
|
|
|
|
raise Exception("File %s doesn't start with %s" % (file, srcdir))
|
|
|
|
|
|
|
|
file = file[len(srcdir) + 1:]
|
|
|
|
return file
|
|
|
|
|
2008-10-24 13:29:33 -07:00
|
|
|
s = re.compile(r'\[MAP(.*?)\]')
|
|
|
|
|
|
|
|
def mapreplace(m):
|
|
|
|
file = m.group(1)
|
|
|
|
c = open(file).read()
|
|
|
|
return c
|
|
|
|
|
2008-10-09 09:34:33 -07:00
|
|
|
for line in sys.stdin:
|
|
|
|
line = f.sub(replacer, line)
|
2008-10-24 13:29:33 -07:00
|
|
|
line = s.sub(mapreplace, line)
|
2008-10-09 09:34:33 -07:00
|
|
|
|
2008-10-24 13:29:33 -07:00
|
|
|
sys.stdout.write(line)
|