#! /usr/bin/env python3 # # Copyright OpenEmbedded Contributors # # SPDX-License-Identifier: GPL-2.0-only # 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 if len(sys.argv) < 2 or sys.argv[1] in ('-h', '--help'): print('oe-trim-schemas: error: the following arguments are required: schema\n' 'Usage: oe-trim-schemas schema\n\n' 'OpenEmbedded trim schemas - remove unneeded schema locale translations\n' ' from gconf schema files\n\n' 'arguments:\n' ' schema gconf schema file to trim\n') sys.exit(2) 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")