diff --git a/org.musicbrainz.Picard.appdata.xml.in b/org.musicbrainz.Picard.appdata.xml.in
index e79a79232..7e0b8d209 100644
--- a/org.musicbrainz.Picard.appdata.xml.in
+++ b/org.musicbrainz.Picard.appdata.xml.in
@@ -93,16 +93,6 @@
-
-
-
-
-
-
-
-
-
-
-
+ %(releases)s
diff --git a/setup.py b/setup.py
index 9dff378b4..fd38ffb5a 100644
--- a/setup.py
+++ b/setup.py
@@ -344,6 +344,8 @@ class picard_build_appdata(Command):
description = 'Build appdata metadata file'
user_options = []
+ re_release = re.compile('Version (\d+(?:\.\d+){1,2}) - (\d{4}-\d{2}-\d{2})')
+
def initialize_options(self):
pass
@@ -351,12 +353,24 @@ class picard_build_appdata(Command):
pass
def run(self):
+ tmp_file = 'org.musicbrainz.Picard.appdata.xml.tmp'
self.spawn([
'msgfmt', '--xml',
'--template=org.musicbrainz.Picard.appdata.xml.in',
'-d', 'po/appstream',
- '-o', 'org.musicbrainz.Picard.appdata.xml',
+ '-o', tmp_file,
])
+ self.add_release_list(tmp_file)
+ os.unlink(tmp_file)
+
+ def add_release_list(self, source_file):
+ with open('NEWS.txt', 'r') as newsfile:
+ news = newsfile.read()
+ releases = []
+ for (version, date) in self.re_release.findall(news):
+ releases.append('' % (date, version))
+ args = {'releases': '\n '.join(releases)}
+ generate_file(source_file, 'org.musicbrainz.Picard.appdata.xml', args)
class picard_regen_appdata_pot_file(Command):