5
pypydir = py.path.local(pypy.__file__).dirpath()
6
distdir = pypydir.dirpath()
7
dist_url = 'http://codespeak.net/svn/pypy/dist/'
8
issue_url = 'http://codespeak.net/issue/pypy-dev/'
10
docdir = pypydir.join('doc')
11
reffile = pypydir.join('doc', '_ref.txt')
13
linkrex = py.std.re.compile('`(\S+)`_')
16
def addlink(linkname, linktarget):
17
assert linkname and linkname != '/'
18
if linktarget in name2target:
19
if linkname in name2target[linktarget]:
21
name2target.setdefault(linktarget, []).append(linkname)
23
for textfile in docdir.visit(lambda x: x.ext == '.txt',
24
lambda x: x.check(dotfile=0)):
25
for linkname in linkrex.findall(textfile.read()):
27
for startloc in ('', 'pypy'):
28
cand = distdir.join(startloc, linkname)
30
rel = cand.relto(distdir)
31
# we are in pypy/doc/x.txt
32
target = '../../' + cand.relto(distdir)
33
addlink(linkname, target)
36
print "WARNING %s: link %r may be bogus" %(textfile, linkname)
37
elif linkname.startswith('issue'):
38
addlink(linkname, issue_url+linkname)
40
items = name2target.items()
44
for linktarget, linknamelist in items:
46
for linkname in linknamelist[:-1]:
47
lines.append(".. _`%s`:" % linkname)
48
lines.append(".. _`%s`: %s" %(linknamelist[-1], linktarget))
50
reffile.write("\n".join(lines))
51
print "wrote %d references to %r" %(len(lines), reffile)
52
#print "last ten lines"
53
#for x in lines[-10:]: print x