summaryrefslogtreecommitdiff
path: root/scripts/oe-trim-schemas
diff options
context:
space:
mode:
authorJohn Klug <john.klug@multitech.com>2018-07-31 17:48:08 -0500
committerJohn Klug <john.klug@multitech.com>2018-07-31 17:48:08 -0500
commitb5dd8c128624cb77576d692b68e24691d4d9a96d (patch)
tree4a0cc0a718fa98582fd70719a83b826c2d990cf5 /scripts/oe-trim-schemas
parente08c220730d5da161a746d811268eb1550beb856 (diff)
downloadmlinux-b5dd8c128624cb77576d692b68e24691d4d9a96d.tar.gz
mlinux-b5dd8c128624cb77576d692b68e24691d4d9a96d.tar.bz2
mlinux-b5dd8c128624cb77576d692b68e24691d4d9a96d.zip
mLinux 4
Diffstat (limited to 'scripts/oe-trim-schemas')
-rwxr-xr-xscripts/oe-trim-schemas49
1 files changed, 49 insertions, 0 deletions
diff --git a/scripts/oe-trim-schemas b/scripts/oe-trim-schemas
new file mode 100755
index 0000000..29fb3a1
--- /dev/null
+++ b/scripts/oe-trim-schemas
@@ -0,0 +1,49 @@
+#! /usr/bin/env python
+
+import sys
+try:
+ import xml.etree.cElementTree as etree
+except:
+ import xml.etree.ElementTree as etree
+
+def child (elem, name):
+ for e in elem.getchildren():
+ if e.tag == name:
+ return e
+ return None
+
+def children (elem, name=None):
+ l = elem.getchildren()
+ if name:
+ l = [e for e in l if e.tag == name]
+ return l
+
+xml = etree.parse(sys.argv[1])
+
+for schema in child(xml.getroot(), "schemalist").getchildren():
+ e = child(schema, "short")
+ if e is not None:
+ schema.remove(e)
+
+ e = child(schema, "long")
+ if e is not None:
+ schema.remove(e)
+
+ for locale in children(schema, "locale"):
+ # One locale must exist so leave C locale...
+ a = locale.attrib.get("name")
+ if a == 'C':
+ continue
+ e = child(locale, "default")
+ if e is None:
+ schema.remove(locale)
+ else:
+ e = child(locale, "short")
+ if e is not None:
+ locale.remove(e)
+ e = child(locale, "long")
+ if e is not None:
+ locale.remove(e)
+
+xml.write(sys.stdout, "UTF-8")
+