add experimental plugins meta informations
authorMladen Horvat <acid-burn@opendreambox.org>
Thu, 3 Sep 2009 07:17:29 +0000 (07:17 +0000)
committerMladen Horvat <acid-burn@opendreambox.org>
Thu, 3 Sep 2009 07:17:29 +0000 (07:17 +0000)
LINGUAS [new file with mode: 0755]
genmetaindex.py [new file with mode: 0755]

diff --git a/LINGUAS b/LINGUAS
new file mode 100755 (executable)
index 0000000..852dc4a
--- /dev/null
+++ b/LINGUAS
@@ -0,0 +1 @@
+ar ca cs da de el en es fi fr fy hr hu is it lt lv nl no pl pt ru sv sk sl sr tr uk
diff --git a/genmetaindex.py b/genmetaindex.py
new file mode 100755 (executable)
index 0000000..6d69c64
--- /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)
+
+       for i in info[:]:
+               package.set(str(i.tag), str(i.text))
+               
+       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)