diff options
| author | Felix Domke <felix.domke@multimedia-labs.de> | 2009-08-17 00:47:18 +0200 |
|---|---|---|
| committer | Felix Domke <felix.domke@multimedia-labs.de> | 2009-08-17 00:47:18 +0200 |
| commit | ea9502b91128e0e02790ed746b527e60a5d1b6b6 (patch) | |
| tree | 6cfda65e04ad6e0a57dd3c22d1bd96c8915b13d4 /tools | |
| parent | a5b05acf110e396ca32bf777b70d7068deea81ce (diff) | |
| download | enigma2-ea9502b91128e0e02790ed746b527e60a5d1b6b6.tar.gz enigma2-ea9502b91128e0e02790ed746b527e60a5d1b6b6.zip | |
add tool to generate meta index data
Diffstat (limited to 'tools')
| -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) |
