mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-10-04 14:00:04 +00:00
55 lines
1.7 KiB
Python
Executable File
55 lines
1.7 KiB
Python
Executable File
#!/usr/bin/env nix-shell
|
|
#!nix-shell -i python3 -p python3 bash nix-update jq
|
|
import subprocess
|
|
from os.path import join, dirname
|
|
|
|
# Outer keys are as in Nix, the inner dict's values are as in upstream.
|
|
# We set oldHash and newHash fields in the inner dict later.
|
|
systems = {
|
|
"x86_64-linux": {"os": "linux", "arch": "amd64"},
|
|
"aarch64-linux": {"os": "linux", "arch": "aarch64"},
|
|
"aarch64-darwin": {"os": "macos", "arch": "aarch64"},
|
|
}
|
|
|
|
# This will set the version correctly,
|
|
# and will also set the hash for one of the systems.
|
|
subprocess.run([
|
|
"nix-update",
|
|
"fermyon-spin",
|
|
"--version-regex",
|
|
r"^v([\d\.]*)",
|
|
"--url",
|
|
"https://github.com/spinframework/spin"
|
|
])
|
|
|
|
newVer = subprocess.run(
|
|
["nix-instantiate", "--eval", "--raw", "-A", "fermyon-spin.version"], capture_output=True, encoding="locale"
|
|
).stdout
|
|
|
|
for nixTuple in systems:
|
|
url = (
|
|
"https://github.com/spinframework/spin/releases/download/v"
|
|
f"{newVer}/spin-v{newVer}-{systems[nixTuple]['os']}-{systems[nixTuple]['arch']}.tar.gz"
|
|
)
|
|
|
|
systems[nixTuple]["oldHash"] = subprocess.run(
|
|
["nix-instantiate", "--eval", "--raw", "-A", f"fermyon-spin.passthru.packageHashes.{nixTuple}"],
|
|
capture_output=True,
|
|
encoding="locale",
|
|
).stdout
|
|
|
|
systems[nixTuple]["newHash"] = subprocess.run(
|
|
["bash", "-c", f"nix store prefetch-file {url} --json | jq -r '.hash'"],
|
|
capture_output=True,
|
|
encoding="locale",
|
|
).stdout.strip() # Has a newline
|
|
|
|
with open(join(dirname(__file__), "package.nix"), "r") as f:
|
|
file = f.read()
|
|
|
|
for nixTuple in systems:
|
|
file = file.replace(systems[nixTuple]["oldHash"], systems[nixTuple]["newHash"])
|
|
|
|
with open(join(dirname(__file__), "package.nix"), "w") as f:
|
|
f.write(file)
|