39 lines
974 B
Python
39 lines
974 B
Python
import hashlib
|
|
import jinja2 as j2
|
|
import os
|
|
import re
|
|
import requests as r
|
|
|
|
|
|
MAINTAINER = "Eldeberen <eldeberen.aur@middleearth.fr>"
|
|
|
|
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))
|