diff --git a/bin/addons/gen_graph.sh b/bin/addons/gen_graph.sh index 56e43569dff..1e80e234dc4 100755 --- a/bin/addons/gen_graph.sh +++ b/bin/addons/gen_graph.sh @@ -1,3 +1,3 @@ #!/bin/bash -./module_graph.py | dot -Tpng -o > module_graph.png +./module_graph.py $@ | dot -Tpng -o > module_graph.png diff --git a/bin/addons/module_graph.py b/bin/addons/module_graph.py index 0f82b2c7411..a4e2efde9aa 100644 --- a/bin/addons/module_graph.py +++ b/bin/addons/module_graph.py @@ -1,12 +1,23 @@ #!/usr/bin/python import os +import sys + +if not len(sys.argv)>1: + raise 'Usage: gen_graph.sh module1 module2 module3' + +modules = sys.argv[1:] +done = [] print 'digraph G {' -for f in os.listdir('.'): +while len(modules): + f = modules.pop(0) + done.append(f) if os.path.isfile(os.path.join(f,"__terp__.py")): info=eval(file(os.path.join(f,"__terp__.py")).read()) if info.get('installable', True): for name in info['depends']: + if name not in done+modules: + modules.append(name) print '\t%s -> %s;' % (f, name) print '}'