svn commit: samba r6919 - in branches/SAMBA_4_0/source/script: .

tpot at samba.org tpot at samba.org
Fri May 20 07:46:20 GMT 2005


Author: tpot
Date: 2005-05-20 07:46:19 +0000 (Fri, 20 May 2005)
New Revision: 6919

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=6919

Log:
Jelmer, here is my script for filtering individual binaries/subsystems/etc
out of the samba4-deps.dot file.  Use like:

script/depfilter.py regpatch < samba4-deps.dot | dotty -

and then scratch your head and wonder why regpatch has to link with 3/4
of what it does.

Added:
   branches/SAMBA_4_0/source/script/depfilter.py


Changeset:
Added: branches/SAMBA_4_0/source/script/depfilter.py
===================================================================
--- branches/SAMBA_4_0/source/script/depfilter.py	2005-05-20 05:26:59 UTC (rev 6918)
+++ branches/SAMBA_4_0/source/script/depfilter.py	2005-05-20 07:46:19 UTC (rev 6919)
@@ -0,0 +1,50 @@
+#!/usr/bin/python
+#
+# Filter out arcs in a dotty graph that are at or below a certain
+# node.  This is useful for visualising parts of the dependency graph.
+#
+
+# Command line stuff
+
+import sys, sre
+
+if len(sys.argv) != 2:
+    print 'Usage: depfilter.py NODE'
+    sys.exit(1)
+
+top = sys.argv[1]
+
+# Read in dot file
+
+lines = sys.stdin.readlines()
+
+graph = {}
+
+for arc in lines[1:-1]:
+    match = sre.search('"(.*)" -> "(.*)"', arc)
+    n1, n2 = match.group(1), match.group(2)
+    if not graph.has_key(n1):
+        graph[n1] = []
+    graph[n1].append(n2)
+
+# Create subset of 'graph' rooted at 'top'
+
+subgraph = {}
+
+def add_deps(node):
+    if graph.has_key(node) and not subgraph.has_key(node):
+        subgraph[node] = graph[node]
+        for n in graph[node]:
+            add_deps(n)
+
+add_deps(top)
+
+# Generate output
+
+print lines[0],
+
+for key, value in subgraph.items():
+    for n in value:
+        print '\t"%s" -> "%s"' % (key, n)
+
+print lines[-1],


Property changes on: branches/SAMBA_4_0/source/script/depfilter.py
___________________________________________________________________
Name: svn:executable
   + *



More information about the samba-cvs mailing list