diff options
author | Alyssa Ross <hi@alyssa.is> | 2023-12-01 19:00:09 +0100 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-12-01 19:00:09 +0100 |
commit | 9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d (patch) | |
tree | 4368f9e4cb2d5b93a956c085337e45cb70f1e331 /nixpkgs/pkgs/desktops/gnome/extensions/update-extensions.py | |
parent | a9cbfb6941b47d6f50129e6e36927882392daed7 (diff) | |
parent | 2344fe1da14cb08b0c18743b207995f9b8597915 (diff) | |
download | nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.tar nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.tar.gz nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.tar.bz2 nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.tar.lz nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.tar.xz nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.tar.zst nixlib-9e9b07490d5bab5d115c66b80bdb10ff0c11ed8d.zip |
Merge https://github.com/NixOS/nixpkgs
Diffstat (limited to 'nixpkgs/pkgs/desktops/gnome/extensions/update-extensions.py')
-rwxr-xr-x | nixpkgs/pkgs/desktops/gnome/extensions/update-extensions.py | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/nixpkgs/pkgs/desktops/gnome/extensions/update-extensions.py b/nixpkgs/pkgs/desktops/gnome/extensions/update-extensions.py index b381aba36af6..4746c2558655 100755 --- a/nixpkgs/pkgs/desktops/gnome/extensions/update-extensions.py +++ b/nixpkgs/pkgs/desktops/gnome/extensions/update-extensions.py @@ -20,6 +20,7 @@ supported_versions = { "42": "42", "43": "43", "44": "44", + "45": "45", } # Some type alias to increase readability of complex compound types @@ -266,15 +267,28 @@ if __name__ == "__main__": processed_extensions.append(processed_extension) logging.debug(f"Processed {num + 1} / {len(raw_extensions)}") + # We micro-manage a lot of the serialization process to keep the diffs optimal. + # We generally want most of the attributes of an extension on one line, + # but then each of its supported versions with metadata on a new line. with open(updater_dir_path / "extensions.json", "w") as out: - # Manually pretty-print the outer level, but then do one compact line per extension - # This allows for the diffs to be manageable (one line of change per extension) despite their quantity for index, extension in enumerate(processed_extensions): + # Manually pretty-print the outermost array level if index == 0: out.write("[ ") else: out.write(", ") - json.dump(extension, out, ensure_ascii=False) + # Dump each extension into a single-line string forst + extension = json.dumps(extension, ensure_ascii=False) + # Inject line breaks for each supported version + for version in supported_versions: + # This one only matches the first entry + extension = extension.replace(f"{{\"{version}\": {{", f"{{\n \"{version}\": {{") + # All other entries + extension = extension.replace(f", \"{version}\": {{", f",\n \"{version}\": {{") + # One last line break around the closing braces + extension = extension.replace("}}}", "}\n }}") + + out.write(extension) out.write("\n") out.write("]\n") |