aboutsummaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorFelix Domke <felix.domke@multimedia-labs.de>2009-08-17 00:47:18 +0200
committerFelix Domke <felix.domke@multimedia-labs.de>2009-08-17 00:47:18 +0200
commitea9502b91128e0e02790ed746b527e60a5d1b6b6 (patch)
tree6cfda65e04ad6e0a57dd3c22d1bd96c8915b13d4 /tools
parenta5b05acf110e396ca32bf777b70d7068deea81ce (diff)
downloadenigma2-ea9502b91128e0e02790ed746b527e60a5d1b6b6.tar.gz
enigma2-ea9502b91128e0e02790ed746b527e60a5d1b6b6.zip
add tool to generate meta index data
Diffstat (limited to 'tools')
-rw-r--r--tools/genmetaindex.py53
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)