diff options
Diffstat (limited to 'tools/genmetaindex.py')
| -rw-r--r-- | tools/genmetaindex.py | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tools/genmetaindex.py b/tools/genmetaindex.py new file mode 100644 index 00000000..787a6f5c --- /dev/null +++ b/tools/genmetaindex.py @@ -0,0 +1,53 @@ +# usage: genmetaindex.py <language> <xml-files> > index.xml +import sys, os +from xml.etree.ElementTree import ElementTree, Element + +language = sys.argv[1] + + +root = Element("index") + +for file in sys.argv[2:]: + p = ElementTree() + p.parse(file) + + package = Element("package") + package.set("details", os.path.basename(file)) + + + # we need all prerequisuited + package.append(p.find("prerequisites")) + + info = None + # we need some of the info, but only our locale + for i in p.findall("info"): + if not info or i.get("language") == language: + info = i + assert info + + + for i in info[:]: + if i.tag not in ["name", "packagename", "shortdescription"]: + info.remove(i) + + package.append(info) + root.append(package) + +def indent(elem, level=0): + i = "\n" + level*"\t" + if len(elem): + if not elem.text or not elem.text.strip(): + elem.text = i + "\t" + 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 + +indent(root) + +ElementTree(root).write(sys.stdout) |
