Skip to content
Snippets Groups Projects
Commit c96a22e0 authored by Anders Blomdell's avatar Anders Blomdell
Browse files

Update depency-tree option

parent 9a5cef02
No related branches found
No related tags found
No related merge requests found
......@@ -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
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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment