mirror of
https://github.com/logos-blockchain/logos-blockchain-circuits.git
synced 2026-05-21 08:49:27 +00:00
58 lines
2.1 KiB
Python
58 lines
2.1 KiB
Python
|
|
#!/usr/bin/env python3
|
||
|
|
# Updates circuits-nix-hashes.json with new platform hashes, overwriting any existing entry for the version.
|
||
|
|
|
||
|
|
import os, json
|
||
|
|
from packaging.version import Version
|
||
|
|
|
||
|
|
PLATFORM_X86_64_LINUX = "x86_64-linux"
|
||
|
|
PLATFORM_AARCH64_LINUX = "aarch64-linux"
|
||
|
|
PLATFORM_AARCH64_DARWIN = "aarch64-darwin"
|
||
|
|
PLATFORM_X86_64_WINDOWS = "x86_64-windows"
|
||
|
|
|
||
|
|
ENV_VAR_VERSION = "VERSION"
|
||
|
|
ENV_VAR_CIRCUITS_NIX_HASHES_FILE = "CIRCUITS_NIX_HASHES_FILE"
|
||
|
|
ENV_VAR_CIRCUIT_HASH_LINUX_X86_64 = "CIRCUIT_HASH_LINUX_X86_64"
|
||
|
|
ENV_VAR_CIRCUIT_HASH_LINUX_AARCH64 = "CIRCUIT_HASH_LINUX_AARCH64"
|
||
|
|
ENV_VAR_CIRCUIT_HASH_DARWIN_AARCH64 = "CIRCUIT_HASH_DARWIN_AARCH64"
|
||
|
|
ENV_VAR_CIRCUIT_HASH_WINDOWS_X86_64 = "CIRCUIT_HASH_WINDOWS_X86_64"
|
||
|
|
|
||
|
|
REQUIRED_ENV_VARS_KEYS = [
|
||
|
|
ENV_VAR_VERSION,
|
||
|
|
ENV_VAR_CIRCUITS_NIX_HASHES_FILE,
|
||
|
|
ENV_VAR_CIRCUIT_HASH_LINUX_X86_64,
|
||
|
|
ENV_VAR_CIRCUIT_HASH_LINUX_AARCH64,
|
||
|
|
ENV_VAR_CIRCUIT_HASH_DARWIN_AARCH64,
|
||
|
|
ENV_VAR_CIRCUIT_HASH_WINDOWS_X86_64,
|
||
|
|
]
|
||
|
|
|
||
|
|
REQUIRED_ENV_VARS = {var: os.getenv(var) for var in REQUIRED_ENV_VARS_KEYS}
|
||
|
|
|
||
|
|
missing_env_vars = [f" - {key}" for key, value in REQUIRED_ENV_VARS.items() if value is None]
|
||
|
|
if missing_env_vars:
|
||
|
|
missing_env_vars_message = "\n".join(missing_env_vars)
|
||
|
|
error_message = f"Missing required env vars:\n{missing_env_vars_message}"
|
||
|
|
raise SystemExit(error_message)
|
||
|
|
|
||
|
|
filepath = REQUIRED_ENV_VARS[ENV_VAR_CIRCUITS_NIX_HASHES_FILE]
|
||
|
|
version = REQUIRED_ENV_VARS[ENV_VAR_VERSION].lstrip("v")
|
||
|
|
x86_64_linux = REQUIRED_ENV_VARS[ENV_VAR_CIRCUIT_HASH_LINUX_X86_64]
|
||
|
|
aarch64_linux = REQUIRED_ENV_VARS[ENV_VAR_CIRCUIT_HASH_LINUX_AARCH64]
|
||
|
|
aarch64_darwin = REQUIRED_ENV_VARS[ENV_VAR_CIRCUIT_HASH_DARWIN_AARCH64]
|
||
|
|
x86_64_windows = REQUIRED_ENV_VARS[ENV_VAR_CIRCUIT_HASH_WINDOWS_X86_64]
|
||
|
|
|
||
|
|
with open(filepath) as file:
|
||
|
|
data = json.load(file)
|
||
|
|
|
||
|
|
data[version] = {
|
||
|
|
PLATFORM_X86_64_LINUX: x86_64_linux,
|
||
|
|
PLATFORM_AARCH64_LINUX: aarch64_linux,
|
||
|
|
PLATFORM_AARCH64_DARWIN: aarch64_darwin,
|
||
|
|
PLATFORM_X86_64_WINDOWS: x86_64_windows,
|
||
|
|
}
|
||
|
|
|
||
|
|
with open(filepath, "w") as file:
|
||
|
|
json.dump(dict(sorted(data.items(), key=lambda x: Version(x[0]))), file, indent=4, sort_keys=True)
|
||
|
|
file.write("\n")
|
||
|
|
|
||
|
|
print(f"Updated {filepath} with version {version}.")
|