From: ellson Date: Tue, 18 Oct 2005 21:13:20 +0000 (+0000) Subject: Add modgraph.py demo from Michael Hohn X-Git-Tag: LAST_LIBGRAPH~32^2~7038 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=c206cfd940dd8ba58edb86f16691bcf50b6e5e30;p=graphviz Add modgraph.py demo from Michael Hohn --- diff --git a/tclpkg/gv/demo/modgraph.py b/tclpkg/gv/demo/modgraph.py new file mode 100755 index 000000000..6b1a3c3c1 --- /dev/null +++ b/tclpkg/gv/demo/modgraph.py @@ -0,0 +1,35 @@ +#!/usr/bin/python + +# display the kernel module dependencies + +# author: Michael Hohn +# based on: modgraph.tcl by John Ellson + +import sys +# sys.path.append('/usr/lib/graphviz/python') +sys.path.append('/usr/lib64/graphviz/python') +import gv + +modules = open("/proc/modules", 'r').readlines() + +G = gv.digraph("G") +gv.setv(G, 'rankdir', 'LR') +gv.setv(G, 'nodesep', '0.05') +gv.setv(G, 'node', 'shape', 'box') +gv.setv(G, 'node', 'width', '0') +gv.setv(G, 'node', 'height', '0') +gv.setv(G, 'node', 'margin', '.03') +gv.setv(G, 'node', 'fontsize', '8') +gv.setv(G, 'node', 'fontname', 'helvetica') +gv.setv(G, 'edge', 'arrowsize', '.4') + +for rec in modules: + fields = rec.split(' ') + n = gv.node(G, fields[0]) + for usedby in fields[3].split(','): + if (usedby != '-') & (usedby != ''): + gv.edge(n, gv.node(G, usedby)) + +gv.layout(G, 'dot') +# The 'xlib' renderer is provided by graphviz-cairo +gv.render(G, 'xlib')