poky/scripts/oe-trim-schemas
Richard Purdie 7350e82ce1 scripts: Add copyright statements to files without one
Where there isn't a copyright statement, add one to make it explicit.
Also drop editor config lines where they were present and add license
identifiers as MIT if there isn't one.

(From OE-Core rev: deb3ccec53e0bd63bc4235cf2b0d3fc781687361)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2022-08-12 11:58:01 +01:00

1.7 KiB
Executable File

#! /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")