From e50a7531ee4ea5dd292e94b5f13b1c9f5278e954 Mon Sep 17 00:00:00 2001 From: miruka Date: Sun, 11 Jul 2021 12:22:10 -0400 Subject: [PATCH] Clean up appdata releases update script - Simplify code - Fix output date for the 0.6.0 release - Move to the packaging dir with a more descriptive filename --- packaging/mirage.appdata.xml | 30 ++++++------ packaging/update-appdata-releases.py | 32 +++++++++++++ refresh-releases.py | 68 ---------------------------- 3 files changed, 47 insertions(+), 83 deletions(-) create mode 100755 packaging/update-appdata-releases.py delete mode 100755 refresh-releases.py diff --git a/packaging/mirage.appdata.xml b/packaging/mirage.appdata.xml index 3fd785de..8b70fa07 100644 --- a/packaging/mirage.appdata.xml +++ b/packaging/mirage.appdata.xml @@ -55,23 +55,23 @@ FSFAP - - - - - - - - - - - - - - + + + + + + + + + + + + + + workstation mobile - + \ No newline at end of file diff --git a/packaging/update-appdata-releases.py b/packaging/update-appdata-releases.py new file mode 100755 index 00000000..eb4bf146 --- /dev/null +++ b/packaging/update-appdata-releases.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python3 + +import html +import re +from pathlib import Path + +root = Path(__file__).resolve().parent.parent +title_pattern = re.compile(r"## (\d+\.\d+\.\d+) \((\d{4}-\d\d-\d\d)\)") +release_lines = [" "] + +for line in (root / "docs" / "CHANGELOG.md").read_text().splitlines(): + match = title_pattern.match(line) + + if match: + args = (html.escape(match.group(1)), html.escape(match.group(2))) + release_lines.append(' ' % args) + +appdata = root / "packaging" / "mirage.appdata.xml" +in_releases = False +final_lines = [] + +for line in appdata.read_text().splitlines(): + if line == " ": + in_releases = True + final_lines += release_lines + elif line == " ": + in_releases = False + + if not in_releases: + final_lines.append(line) + +appdata.write_text("\n".join(final_lines)) diff --git a/refresh-releases.py b/refresh-releases.py deleted file mode 100755 index 107ebe8b..00000000 --- a/refresh-releases.py +++ /dev/null @@ -1,68 +0,0 @@ -#!/usr/bin/env python3 - -from pathlib import Path -import html -import mistune -import re - - -def get_src_path(): - return str(Path(__file__).resolve().parent) - - -def make_changelog_dict(title): - title_parts = title.split(" ") - - return { - "date": title_parts[2][1:-2], - "version": title_parts[1] - } - - -def make_release_tag(version, date): - return " \n" \ - - -markdown_parser = mistune.Markdown(escape=False) -changelog_title_pattern = re.compile(r"##\ \d\.\d\.\d\ \(\d{4}-\d{2}-\d{2}\)") -changelog_lines = open(get_src_path() + "/docs/CHANGELOG.md", "r").readlines() -changelog_entries = [] - -for line in changelog_lines: - if changelog_title_pattern.match(line): - changelog_entry = make_changelog_dict(line) - changelog_entries.append(changelog_entry) - -appdata_releases = "" - -for entry in changelog_entries: - appdata_releases += make_release_tag(entry["version"], entry["date"]) - -appdata_path = get_src_path() + "/packaging/mirage.appdata.xml" -appdata_lines = open(appdata_path, "r").readlines() -releases_open_pattern = re.compile(r" ") -releases_close_pattern = re.compile(r" ") - -opening_tag_found = False -releases_open_line = 0 -releases_close_line = 0 - -for line in appdata_lines: - if not opening_tag_found: - releases_open_line += 1 - if releases_open_pattern.match(line): - opening_tag_found = True - if releases_close_pattern.match(line): - break - releases_close_line += 1 - -# We need to remove the old release entries since we're inserting -# new ones unconditionally -del appdata_lines[releases_open_line:releases_close_line] -appdata_lines.insert(releases_open_line, appdata_releases) - -with open(appdata_path, "w") as appdata_file: - appdata_lines = "".join(appdata_lines) - appdata_file.write(appdata_lines)