summaryrefslogtreecommitdiff
path: root/misc/openlayers/tools/oldot.py
blob: 396fb1779c2bd1d2edf279149456a88966291b0f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import re
import os    
def run():
    sourceDirectory = "../lib/OpenLayers"    
    allFiles = []
    SUFFIX_JAVASCRIPT = ".js"
    ## Find all the Javascript source files
    for root, dirs, files in os.walk(sourceDirectory):
        for filename in files:
            if filename.endswith(SUFFIX_JAVASCRIPT) and not filename.startswith("."):
                filepath = os.path.join(root, filename)[len(sourceDirectory)+1:]
                filepath = filepath.replace("\\", "/")
                data = open(os.path.join(sourceDirectory, filepath)).read()
                parents = re.search("OpenLayers.Class\((.*?){", data, 
                      re.DOTALL)
                if parents:
                    parents = [x.strip() for x in parents.group(1).strip().strip(",").split(",")]
                else: 
                    parents = []
                cls = "OpenLayers.%s" % filepath.strip(".js").replace("/", ".")
                allFiles.append([cls, parents])
    return allFiles
print """
digraph name {
  fontname = "Helvetica"
  fontsize = 8
  K = 0.6

  node [
    fontname = "Helvetica"
    fontsize = 8
    shape = "plaintext"
  ]
"""

for i in run():
    print i[0].replace(".", "_")
    for item in i[1]:
        if not item: continue
        print "%s -> %s" % (i[0].replace(".","_"), item.replace(".", "_"))
    print "; "

print """}"""