changeset 4301:fad6f1ebeb44

mx.py: new projectgraph command
author Lukas Stadler <lukas.stadler@jku.at>
date Thu, 12 Jan 2012 17:30:11 +0100
parents afe0c2480dfd
children b3c3d1b1ddfa
files mxtool/mx.py
diffstat 1 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mxtool/mx.py	Thu Jan 12 14:56:18 2012 +0100
+++ b/mxtool/mx.py	Thu Jan 12 17:30:11 2012 +0100
@@ -1189,6 +1189,16 @@
         doc = doc.format(*fmtArgs)
     print 'mx {0} {1}\n\n{2}\n'.format(name, usage, doc)
 
+def projectgraph(args, suite=None):
+    """create dot graph for project structure ("mx projectgraph | dot -Tpdf -oprojects.pdf")"""
+    
+    print 'digraph projects {'
+    print 'rankdir=BT;'
+    print 'node [shape=rect];'
+    for p in projects():
+        for dep in p.canonical_deps():
+            print '"' + p.name + '"->"' + dep + '"'
+    print '}'
 
 def eclipseinit(args, suite=None):
     """(re)generate Eclipse project configurations"""
@@ -1585,6 +1595,7 @@
     'help': [help_, '[command]'],
     'ideclean': [ideclean, ''],
     'ideinit': [ideinit, ''],
+    'projectgraph': [projectgraph, ''],
     'javap': [javap, ''],
     'netbeansinit': [netbeansinit, ''],
     'projects': [show_projects, ''],