diff --git a/src/mio.py b/src/mio.py index 24b25d61b864b2e87ddc8054002cb72021d7573e..7b037c4d3a75a0c5b802fb3417ea1e0d21c0b522 100755 --- a/src/mio.py +++ b/src/mio.py @@ -173,6 +173,10 @@ if __name__ == '__main__': action="append", default=[], metavar="TARGET", help="test TARGET") + optParser.add_argument("--dependency-tree", + action="append", default=[], + metavar="TARGET", + help="print dependency tree for TARGET") optParser.add_argument("-v","--verbose", action="count", dest="verbose", default=0, @@ -301,6 +305,29 @@ if __name__ == '__main__': pass pass + if options.dependency_tree: + def dump_tree(name, indent=0): + print('%s%s' % (' '*indent, name)) + tree = rules.get(name) + for s in tree._symlink_: + print('%s* %s' % (' '*(indent+1), s.name[0])) + print('%s-> %s' % (' '*(indent+2), s.value[0])) + pass + for f in tree._file_: + print('%s* %s' % (' '*(indent+1), f.name[0])) + if f.source[0]: + print('%s= %s' % (' '*(indent+2), f.source[0])) + pass + pass + for d in tree._dependency_: + dump_tree(d.name[0], indent+1) + pass + pass + for target in options.dependency_tree: + dump_tree(target) + pass + pass + if options.test: installer = mio.installer.Installer(rules) for g in options.test: