diff --git a/build/tools/roomservice.py b/build/tools/roomservice.py index bc860cae..835d792d 100755 --- a/build/tools/roomservice.py +++ b/build/tools/roomservice.py @@ -87,6 +87,22 @@ def exists_in_tree(lm, path): return True return False +# in-place prettyprint formatter +def indent(elem, level=0): + i = "\n" + level*" " + if len(elem): + if not elem.text or not elem.text.strip(): + elem.text = i + " " + if not elem.tail or not elem.tail.strip(): + elem.tail = i + for elem in elem: + indent(elem, level+1) + if not elem.tail or not elem.tail.strip(): + elem.tail = i + else: + if level and (not elem.tail or not elem.tail.strip()): + elem.tail = i + def get_manifest_path(): '''Find the current manifest path In old versions of repo this is at .repo/manifest.xml @@ -191,7 +207,7 @@ def add_to_manifest(repositories): print("Adding dependency: %s -> %s" % (project.attrib["name"], project.attrib["path"])) lm.append(project) - ElementTree.indent(lm) + indent(lm, 0) raw_xml = ElementTree.tostring(lm).decode() raw_xml = '\n' + raw_xml