updater-plugins/go-bin.star

46 lines
1.4 KiB
Plaintext

def update_pkg(s, version):
rows = s.find('tbody > tr')
checksums = {}
for row in rows:
link = row.first().find('a').attr('href')
checksum = row.last().find('tt').text()
if 'linux' not in link:
continue
elif 'linux-386' in link:
checksums['386'] = checksum
elif 'linux-amd64' in link:
checksums['amd64'] = checksum
elif 'linux-arm64' in link:
checksums['arm64'] = checksum
elif 'linux-armv6l' in link:
checksums['arm6'] = checksum
elif 'linux-riscv64' in link:
checksums['riscv64'] = checksum
tmpl = updater.get_package_file("go-bin", "lure.tmpl.sh")
updater.write_package_file("go-bin", "lure.sh", tmpl % (
version,
checksums["amd64"],
checksums["arm64"],
checksums["arm6"],
checksums["386"],
checksums["riscv64"],
))
updater.push_changes("upg(go-bin): %s" % version)
def poll_for_updates():
res = http.get('https://go.dev/dl')
s = html.parse(res.body).find('h2#stable').next()
version = s.attr("id").removeprefix("go")
stored = store.get('version')
if stored == "":
store.set("version", version)
elif stored != version:
update_pkg(s, version)
store.set("version", version)
run_every("1h", poll_for_updates)