File: patch-metainfo

package info (click to toggle)
cockpit 354-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 308,956 kB
  • sloc: javascript: 775,606; python: 40,351; ansic: 35,655; cpp: 11,117; sh: 3,511; makefile: 580; xml: 261
file content (35 lines) | stat: -rwxr-xr-x 1,130 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/python3

# Merges a downstream releases.xml file with the upstream metainfo.xml.
#
# Opens the metainfo file, finds the <releases> tag, and replaces its contents
# with the contents of the <releases> tag found in the releases file.
#
# This facilitates keeping a downstream changelog, not shipped in tarballs.
#
# This substitution is meant to be done at `make install` time.  Set the
# `DOWNSTREAM_RELEASES_XML` environment variable while calling `make install`.

import argparse
import xml.etree.ElementTree as ET

parser = argparse.ArgumentParser()
parser.add_argument('metainfo')
parser.add_argument('releases')
args = parser.parse_args()

releases = ET.parse(args.releases)
releases_releases = releases.find('releases')
assert releases_releases is not None

metainfo = ET.parse(args.metainfo)
metainfo_releases = metainfo.find('releases')
assert metainfo_releases is not None

stub_release = metainfo_releases.find('release')
if stub_release is not None:
    metainfo_releases.remove(stub_release)

metainfo_releases.extend(releases_releases)

metainfo.write(args.metainfo, encoding='utf-8', xml_declaration=True)