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):