From ea9502b91128e0e02790ed746b527e60a5d1b6b6 Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Mon, 17 Aug 2009 00:47:18 +0200 Subject: [PATCH] add tool to generate meta index data --- tools/genmetaindex.py | 53 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 tools/genmetaindex.py 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 > 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) -- 2.30.2