]> granicus.if.org Git - graphviz/commitdiff
Add modgraph.py demo from Michael Hohn <mhhohn@lbl.gov>
authorellson <devnull@localhost>
Tue, 18 Oct 2005 21:13:20 +0000 (21:13 +0000)
committerellson <devnull@localhost>
Tue, 18 Oct 2005 21:13:20 +0000 (21:13 +0000)
tclpkg/gv/demo/modgraph.py [new file with mode: 0755]

diff --git a/tclpkg/gv/demo/modgraph.py b/tclpkg/gv/demo/modgraph.py
new file mode 100755 (executable)
index 0000000..6b1a3c3
--- /dev/null
@@ -0,0 +1,35 @@
+#!/usr/bin/python
+
+# display the kernel module dependencies
+
+# author: Michael Hohn <mhholn@lbl.gov>
+#  based on: modgraph.tcl by John Ellson <ellson@research.att.com>
+
+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')