xpcom/analysis/fix-srcrefs.py

changeset 0
6474c204b198
equal deleted inserted replaced
-1:000000000000 0:e8128007f977
1 #!/usr/bin/env python
2 # This Source Code Form is subject to the terms of the Mozilla Public
3 # License, v. 2.0. If a copy of the MPL was not distributed with this
4 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
6
7 """
8 Fix references to source files of the form [LOCpath]
9 so that they are relative to a given source directory.
10
11 Substitute the DOT-generated image map into the document.
12 """
13
14 import os, sys, re
15
16 (srcdir, ) = sys.argv[1:]
17 srcdir = os.path.realpath(srcdir)
18
19 f = re.compile(r'\[LOC(.*?)\]')
20
21 def replacer(m):
22 file = m.group(1)
23 file = os.path.realpath(file)
24 if not file.startswith(srcdir):
25 raise Exception("File %s doesn't start with %s" % (file, srcdir))
26
27 file = file[len(srcdir) + 1:]
28 return file
29
30 s = re.compile(r'\[MAP(.*?)\]')
31
32 def mapreplace(m):
33 file = m.group(1)
34 c = open(file).read()
35 return c
36
37 for line in sys.stdin:
38 line = f.sub(replacer, line)
39 line = s.sub(mapreplace, line)
40
41 sys.stdout.write(line)

mercurial