import hashlib import jinja2 as j2 import os import re import requests as r MAINTAINER = "Eldeberen " env = j2.Environment( loader=j2.FileSystemLoader('templates'), autoescape=j2.select_autoescape([]) ) def get_hash(name, tag): regex = re.compile("^source=.+(https://.+\.tar\.[a-z]+)", re.MULTILINE) with open(f"templates/{name}.j2") as file: content = file.read() try: url = regex.search(content).group(1) except: return "SKIP" url = url.replace("${pkgver}", tag) url = url.replace("${pkgname}", name) archive = r.get(url) hash = hashlib.sha256(archive.content).hexdigest() return hash def render_pkgbuild(name, tag): template = env.get_template(f"{name}.j2") hash = get_hash(name, tag) os.mkdir(f"pkgbuilds/{name}") with open(f"pkgbuilds/{name}/PKGBUILD", "w") as file: file.write(template.render(tag=tag, hash=hash, maintainer=MAINTAINER))