scripts/kde: handle missing hashes gracefully

K900 a2f4f883 454765d7

Changed files
+12 -2
maintainers
scripts
+12 -2
maintainers/scripts/kde/generate-sources.py
···
#!nix-shell -i python3 -p "python3.withPackages(ps: [ ps.beautifulsoup4 ps.click ps.httpx ps.jinja2 ps.packaging ps.pyyaml ])" nix-update
import base64
import binascii
import json
import pathlib
import subprocess
···
url = urljoin(sources_url, link.attrs["href"])
-
hash = client.get(url + ".sha256").text.split(" ", maxsplit=1)[0]
-
assert hash
if existing := results.get(project_name):
old_version = existing["version"]
···
#!nix-shell -i python3 -p "python3.withPackages(ps: [ ps.beautifulsoup4 ps.click ps.httpx ps.jinja2 ps.packaging ps.pyyaml ])" nix-update
import base64
import binascii
+
import hashlib
import json
import pathlib
import subprocess
···
url = urljoin(sources_url, link.attrs["href"])
+
hash = client.get(url + ".sha256").text.strip()
+
+
if hash == "Hash type not supported":
+
print(f"{url} missing hash on CDN, downloading...")
+
hasher = hashlib.sha256()
+
with client.stream("GET", url, follow_redirects=True) as r:
+
for data in r.iter_bytes():
+
hasher.update(data)
+
hash = hasher.hexdigest()
+
else:
+
hash = hash.split(" ", maxsplit=1)[0]
if existing := results.get(project_name):
old_version = existing["version"]