summarylogtreecommitdiffstats
path: root/render_pkgbuild.py
diff options
context:
space:
mode:
author[BOT] Gilbert Gilb's2022-05-13 01:14:17 +0000
committer[BOT] Gilbert Gilb's2022-05-13 01:14:17 +0000
commit605bc69af01b9cc8a97f1ebf5e59bac2b751a577 (patch)
tree77df65018fcc511cec73bfdc5391d1e14a9f1b27 /render_pkgbuild.py
parente92f6d9022dc2705ec0cf853ff0d9d0678847384 (diff)
downloadaur-605bc69af01b9cc8a97f1ebf5e59bac2b751a577.tar.gz
Update fleet-orbit to 0.0.11-2.
Diffstat (limited to 'render_pkgbuild.py')
-rwxr-xr-xrender_pkgbuild.py100
1 files changed, 0 insertions, 100 deletions
diff --git a/render_pkgbuild.py b/render_pkgbuild.py
deleted file mode 100755
index 97c5cb7660a0..000000000000
--- a/render_pkgbuild.py
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/usr/bin/env python3
-import hashlib
-import json
-import pathlib
-import re
-import sys
-import typing
-
-import jinja2
-import requests
-from github import Github
-
-
-REPO_NAME = "fleetdm/fleet"
-VERSION_PATTERN = re.compile(r"orbit-v([0-9]+\.[0-9]+\.[0-9]+)")
-
-REPO = Github().get_repo(REPO_NAME)
-METADATA_PATH = pathlib.Path("./metadata.json")
-
-
-class TagInfo(typing.TypedDict):
- name: str
- pkgver: str
- commit_sha: str
- tarball_url: str
-
-
-class Metadata(typing.TypedDict):
- tag_info: TagInfo
- release_sha512sum: str
- pkgrel: int
-
-
-def query_latest_tag_info() -> TagInfo:
- for tag in REPO.get_tags():
- match = VERSION_PATTERN.match(tag.name)
- if match is not None:
- return {
- "name": tag.name,
- "pkgver": match.group(1),
- "commit_sha": tag.commit.sha,
- "tarball_url": f"https://github.com/{REPO_NAME}/archive/refs/tags/{tag.name}.tar.gz",
- }
-
- raise RuntimeError("No tag matching pattern found.")
-
-
-def refresh_metadata(tag_info: TagInfo) -> Metadata:
- release_sha512sum: typing.Optional[str] = None
- pkgrel = 1
- if METADATA_PATH.exists():
- old_metadata: Metadata = json.loads(METADATA_PATH.read_text())
- if tag_info["name"] == old_metadata["tag_info"]["name"]:
- # Existing release, no need to re-compute checksum.
- release_sha512sum = old_metadata["release_sha512sum"]
- # Get pkgrel from existing metadata.
- pkgrel = old_metadata["pkgrel"]
- else:
- # New release, reset pkgrel.
- pkgrel = 1
-
- metadata: Metadata = {
- "tag_info": tag_info,
- "release_sha512sum": (
- release_sha512sum or compute_remote_checksum(tag_info["tarball_url"])
- ),
- "pkgrel": pkgrel,
- }
-
- METADATA_PATH.write_text(json.dumps(metadata, sort_keys=True, indent=2))
- return metadata
-
-
-def compute_remote_checksum(url: str, sumfunc=hashlib.sha512, chunk_size=1024) -> str:
- s = sumfunc()
- with requests.get(url, stream=True) as resp:
- for content in resp.iter_content(chunk_size=chunk_size):
- s.update(content)
- return s.hexdigest()
-
-
-def render_pkgbuild(metadata: Metadata) -> None:
- env = jinja2.Environment(loader=jinja2.FileSystemLoader("."))
- env.globals["sha512sum"] = lambda path: hashlib.sha512(
- pathlib.Path(path).read_bytes()
- ).hexdigest()
- template = env.get_template("./PKGBUILD.jinja")
- result = template.render(metadata=metadata)
- pathlib.Path("./PKGBUILD").write_text(result)
-
-
-def main() -> bool:
- tag_info = query_latest_tag_info()
- metadata = refresh_metadata(tag_info)
- render_pkgbuild(metadata)
- return True
-
-
-if __name__ == "__main__":
- sys.exit(not bool(main()))