about summary refs log tree commit diff
path: root/pkgs/by-name/an/anyk/update.py
blob: 0d20a9017870c479dc8b3f5592b0406d5e6346a0 (plain) (blame)
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
#! /usr/bin/env nix-shell
#! nix-shell -i python3 -p "python3.withPackages (p: [p.waybackpy])"
import subprocess
from pathlib import Path
import re
import json
import waybackpy

# NAV doesn't provide stable versioned URLs so we put the download link in Wayback Machine to preserve it.

print("Archiving...")
save_api = waybackpy.WaybackMachineSaveAPI("https://nav.gov.hu/pfile/programFile?path=/nyomtatvanyok/letoltesek/nyomtatvanykitolto_programok/nyomtatvany_apeh/keretprogramok/AbevJava")

url = save_api.save()

print("Prefetching...")
sha256, unpack_path = subprocess.check_output(["nix-prefetch-url", "--unpack", "--print-path", url], universal_newlines=True).split("\n")[:2]

print("Extracting version...")
manifest = (Path(unpack_path) / "META-INF" / "MANIFEST.MF").read_text()

version = re.search("Implementation-Version: (.+)", manifest).group(1)

print("Writing version.json...")
(Path(__file__).parent / "version.json").write_text(json.dumps({
  "url": url,
  "sha256": sha256,
  "version": version,
}, indent=2) + "\n")