diff options
Diffstat (limited to 'contrib/graph-helpers/graph-helpers.py')
-rwxr-xr-x | contrib/graph-helpers/graph-helpers.py | 74 |
1 files changed, 0 insertions, 74 deletions
diff --git a/contrib/graph-helpers/graph-helpers.py b/contrib/graph-helpers/graph-helpers.py deleted file mode 100755 index a0eceb870..000000000 --- a/contrib/graph-helpers/graph-helpers.py +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/env python - -""" - live-helper simulated execution graph generator. - Copyright (C) 2007 Chris Lamb <chris@chris-lamb.co.uk> - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -""" - -import sys, re -import pygraphviz - -groups = { - 'lh_bootstrap' : 'orange', - 'lh_chroot' : 'red', - 'lh_source' : 'blue', - 'lh_binary' : 'green', - 'lh_build' : 'brown' -} -pattern = re.compile(r'^(lh_.+?) ') - -def main(start): - global prev - G = pygraphviz.AGraph(directed=True) - G.graph_attr['label'] = 'Simulated execution trace for live-helper.' - - def helper(filename): - global prev - for line in gen_matches(filename): - G.add_edge(prev, line) - style(G.get_node(prev), prev) - prev = line - helper(line) - - prev = start - helper(start) - G.layout(prog='dot') - print G.draw(format='svg') - -def style(node, name): - if name in groups.keys(): - node.attr['shape'] = 'box' - node.attr['style'] = 'bold' - else: - node.attr['fontsize'] = '11' - for group_name, color in groups.iteritems(): - if name.startswith(group_name): - node.attr['color'] = color - return node - -def gen_matches(filename): - f = open('/usr/bin/%s' % filename, 'r') - for line in f.xreadlines(): - match = pattern.match(line) - if match: - yield match.group(1) - f.close() - -if __name__ == "__main__": - if len(sys.argv) == 2: - main(sys.argv[1]) - else: - main('lh_build') |