From c206cfd940dd8ba58edb86f16691bcf50b6e5e30 Mon Sep 17 00:00:00 2001 From: ellson Date: Tue, 18 Oct 2005 21:13:20 +0000 Subject: [PATCH] Add modgraph.py demo from Michael Hohn --- tclpkg/gv/demo/modgraph.py | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100755 tclpkg/gv/demo/modgraph.py 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') -- 2.40.0