From c96a22e035ad42b440778c042fbacba424f90027 Mon Sep 17 00:00:00 2001
From: Anders Blomdell <anders.blomdell@control.lth.se>
Date: Tue, 26 Nov 2019 12:19:51 +0100
Subject: [PATCH] Update depency-tree option

---
 src/mio.py | 39 ++++++++++++++++++++++++---------------
 1 file changed, 24 insertions(+), 15 deletions(-)

diff --git a/src/mio.py b/src/mio.py
index 57afc28..abf5681 100755
--- a/src/mio.py
+++ b/src/mio.py
@@ -17,7 +17,7 @@ from mio.exception import *
 from mio.log import log, MUTE, SILENT, NORMAL, VERBOSE
 import locale
 
-def parse_with_path(path, filename, repository):
+def parse_with_path(path, filename, repository=None):
     f = mio.filecache.loadfile(path, filename)
     tree = mio.parser.parse(f.filename, url=f.key)
     
@@ -26,20 +26,25 @@ def parse_with_path(path, filename, repository):
         # Transform comps to canonical form
         tree = mio.transform.from_fedora(tree)
         join = mio.transform.join
+        pass
     elif tree._tag == "hostinfo":
         # Transform hostinfo to canonical form
         tree = mio.transform.from_hostinfo(tree)
+        pass
     elif tree._tag == "mio":
         # Transform mio tree to canonical form
         tree = mio.transform.from_mio(tree)
+        pass
+    if repository != None:
+        repository.add(tree._group_, join=join)
+        pass
+    return tree
 
-    repository.add(tree._group_, join=join)
-
-def parse(filename, repository):
+def parse(filename, repository=None):
     for p in options.path:
         try:
-            parse_with_path(p, filename, repository)
-            return
+            tree = parse_with_path(p, filename, repository)
+            return tree
         except IOError as e:
             print(e)
             raise
@@ -174,7 +179,7 @@ if __name__ == '__main__':
                            metavar="TARGET",
                            help="test TARGET")
     optParser.add_argument("--dependency-tree",
-                           action="append", default=[],
+                           action="append", nargs='*', default=None,
                            metavar="TARGET",
                            help="print dependency tree for TARGET")
     optParser.add_argument("-v","--verbose",
@@ -305,7 +310,7 @@ if __name__ == '__main__':
             pass
         pass
 
-    if options.dependency_tree:
+    if options.dependency_tree != None:
         def dump_tree(name, indent=0):
             print('%s%s' % ('  '*indent, name))
             tree = rules.get(name)
@@ -315,20 +320,24 @@ if __name__ == '__main__':
                     pass
                 pass
             for s in tree._symlink_:
-                print('%s[s] %s' % ('  '*(indent+1), s.name[0]))
-                print('%s    -> %s' % ('  '*(indent+1), s.value[0]))
+                print('%s[s] %s -> %s' % ('  '*(indent+1),
+                                          s.name[0],
+                                          s.value[0]))
                 pass
             for f in tree._file_:
-                print('%s[f] %s' % ('  '*(indent+1), f.name[0]))
-                if f.source[0]:
-                    print('%s    = %s' % ('  '*(indent+1), f.source[0]))
-                    pass
+                print('%s[f] %s = %s' % ('  '*(indent+1),
+                                         f.name[0],
+                                         f.source[0] or f.name[0]))
                 pass
             for d in tree._dependency_:
                 dump_tree(d.name[0], indent+1)
                 pass
             pass
-        for target in options.dependency_tree:
+        todo = [i for l in options.dependency_tree for i in l]
+        if len(todo) == 0:
+            tree = parse('hostinfo.xml')
+            todo = [ h.name[0] for h in tree._group_]
+        for target in todo:
             dump_tree(target)
             pass
         pass
-- 
GitLab