add tool to generate meta index data
authorFelix Domke <felix.domke@multimedia-labs.de>
Sun, 16 Aug 2009 22:47:18 +0000 (00:47 +0200)
committerFelix Domke <felix.domke@multimedia-labs.de>
Sun, 16 Aug 2009 22:47:18 +0000 (00:47 +0200)
tools/genmetaindex.py [new file with mode: 0644]

diff --git a/tools/genmetaindex.py b/tools/genmetaindex.py
new file mode 100644 (file)
index 0000000..787a6f5
--- /dev/null
@@ -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)