initial commit
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
"""Download and extract zsign for this operating system."""
|
||||
import os
|
||||
import platform
|
||||
from pathlib import Path
|
||||
|
||||
from fetch import ensure_archive, extract_archive
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
TOOLS = ROOT / "tools" / "zsign"
|
||||
VERSION = "1.1.2"
|
||||
RELEASE = f"https://github.com/zhlynn/zsign/releases/tag/v{VERSION}"
|
||||
|
||||
ARCH = {
|
||||
"amd64": "x86_64",
|
||||
"x86_64": "x86_64",
|
||||
"arm64": "aarch64",
|
||||
"aarch64": "aarch64",
|
||||
}
|
||||
# Official v1.1.2 assets. There is no Windows arm64 or macOS x64 build.
|
||||
ASSETS = {
|
||||
("windows", "x86_64"): ("zsign-windows-x64.zip", "zsign.exe"),
|
||||
("darwin", "aarch64"): ("zsign-macos-arm64.tar.gz", "zsign"),
|
||||
("linux", "x86_64"): ("zsign-linux-x86_64.tar.gz", "zsign"),
|
||||
("linux", "aarch64"): ("zsign-linux-aarch64.tar.gz", "zsign"),
|
||||
}
|
||||
|
||||
|
||||
def main() -> None:
|
||||
system = platform.system().lower()
|
||||
arch = ARCH.get(platform.machine().lower())
|
||||
asset = ASSETS.get((system, arch))
|
||||
if not asset:
|
||||
print(RELEASE)
|
||||
raise SystemExit(2)
|
||||
|
||||
filename, binary = asset
|
||||
if (TOOLS / binary).is_file():
|
||||
return
|
||||
url = f"https://github.com/zhlynn/zsign/releases/download/v{VERSION}/{filename}"
|
||||
archive = TOOLS.parent / filename
|
||||
print(url, flush=True)
|
||||
ensure_archive(url, archive)
|
||||
extract_archive(archive, TOOLS)
|
||||
installed = TOOLS / binary
|
||||
if not installed.is_file():
|
||||
raise SystemExit(2)
|
||||
if os.name != "nt":
|
||||
installed.chmod(0o755)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user