2008-10-09 20:34:33 +04:00
|
|
|
#!/usr/bin/env python
|
2012-05-21 15:12:37 +04:00
|
|
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
|
|
2008-10-09 20:34:33 +04:00
|
|
|
|
|
|
|
"""
|
|
|
|
Fix references to source files of the form [LOCpath]
|
|
|
|
so that they are relative to a given source directory.
|
2008-10-25 00:29:33 +04:00
|
|
|
|
|
|
|
Substitute the DOT-generated image map into the document.
|
2008-10-09 20:34:33 +04: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-25 00:29:33 +04:00
|
|
|
s = re.compile(r'\[MAP(.*?)\]')
|
|
|
|
|
|
|
|
def mapreplace(m):
|
|
|
|
file = m.group(1)
|
|
|
|
c = open(file).read()
|
|
|
|
return c
|
|
|
|
|
2008-10-09 20:34:33 +04:00
|
|
|
for line in sys.stdin:
|
|
|
|
line = f.sub(replacer, line)
|
2008-10-25 00:29:33 +04:00
|
|
|
line = s.sub(mapreplace, line)
|
2008-10-09 20:34:33 +04:00
|
|
|
|
2008-10-25 00:29:33 +04:00
|
|
|
sys.stdout.write(line)
|