mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-12-11 16:32:59 +00:00
42 lines
1.0 KiB
Python
42 lines
1.0 KiB
Python
# 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/.
|
|
|
|
"""
|
|
Take the *.framedata files from graph-frameclasses.js and combine them
|
|
into a single graphviz file.
|
|
|
|
stdin: a list of .framedata file names (e.g. from xargs)
|
|
stdout: a graphviz file
|
|
|
|
e.g. `find <objdir> -name "*.framedata" | python aggregate-frameclasses.py |
|
|
dot -Tpng -o frameclasses-graph.png -`
|
|
"""
|
|
|
|
import sys
|
|
|
|
classdict = {}
|
|
|
|
for line in sys.stdin:
|
|
file = line.strip()
|
|
fd = open(file)
|
|
|
|
output = None
|
|
for line in fd:
|
|
if line.startswith('CLASS-DEF: '):
|
|
cname = line[11:-1]
|
|
if cname not in classdict:
|
|
output = classdict[cname] = []
|
|
else:
|
|
output = None
|
|
elif output is not None:
|
|
output.append(line)
|
|
|
|
sys.stdout.write('digraph g {\n')
|
|
|
|
for olist in classdict.itervalues():
|
|
for line in olist:
|
|
sys.stdout.write(line)
|
|
|
|
sys.stdout.write('}\n')
|