12345678910111213141516171819202122232425262728293031323334353637 |
- #!/usr/bin/env python3
- """
- display the kernel module dependencies
- author: Michael Hohn <[email protected]>
- based on: modgraph.tcl by John Ellson <[email protected]>
- """
- import gv # pylint: disable=import-error
- with open("/proc/modules", "rt", encoding="utf-8") as mod:
- modules = mod.readlines()
- G = gv.digraph("G")
- N = gv.protonode(G)
- E = gv.protoedge(G)
- gv.setv(G, "rankdir", "LR")
- gv.setv(G, "nodesep", "0.05")
- gv.setv(N, "shape", "box")
- gv.setv(N, "width", "0")
- gv.setv(N, "height", "0")
- gv.setv(N, "margin", ".03")
- gv.setv(N, "fontsize", "8")
- gv.setv(N, "fontname", "helvetica")
- gv.setv(E, "arrowsize", ".4")
- for rec in modules:
- fields = rec.split(" ")
- n = gv.node(G, fields[0])
- for usedby in fields[3].split(","):
- if usedby not in ("-", ""):
- gv.edge(n, gv.node(G, usedby))
- gv.layout(G, "dot")
- gv.render(G, "xlib")
|