aboutsummaryrefslogtreecommitdiff
path: root/www-client/brave-bin/autogen.py
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2022-09-07 18:35:28 +0300
committerSyndamia <kamen@syndamia.com>2022-09-07 18:35:28 +0300
commit607b085c81c1e059dd8047b49bbf8ccab30581f1 (patch)
tree42cc7b370ea404c9e0680880332fe09b74f93193 /www-client/brave-bin/autogen.py
parente8f114201c87a85b637074a15b9ff7e0403cc113 (diff)
downloadgarbage-607b085c81c1e059dd8047b49bbf8ccab30581f1.tar
garbage-607b085c81c1e059dd8047b49bbf8ccab30581f1.tar.gz
garbage-607b085c81c1e059dd8047b49bbf8ccab30581f1.zip
Fixed brave-bin category nameHEADmain
Diffstat (limited to 'www-client/brave-bin/autogen.py')
-rw-r--r--www-client/brave-bin/autogen.py59
1 files changed, 59 insertions, 0 deletions
diff --git a/www-client/brave-bin/autogen.py b/www-client/brave-bin/autogen.py
new file mode 100644
index 0000000..c9ada62
--- /dev/null
+++ b/www-client/brave-bin/autogen.py
@@ -0,0 +1,59 @@
+#!/usr/bin/env python3
+
+import json
+from datetime import timedelta
+from packaging import version
+
+
+def find_release(json_dict, channel="Release"):
+ releases = filter(
+ lambda x: x["prerelease"] is False
+ and x["draft"] is False
+ and x["name"].startswith(channel)
+ and not "Android" in x["name"],
+ json_dict,
+ )
+ releases = list(releases)
+ if not len(releases):
+ return None
+ return sorted(releases, key=lambda x: version.parse(x["tag_name"]))[-1]
+
+
+async def generate(hub, **pkginfo):
+
+ json_dict = await hub.pkgtools.fetch.get_page(
+ "https://api.github.com/repos/brave/brave-browser/releases?per_page=100", is_json=True, refresh_interval=timedelta(days=5)
+ )
+
+ # Try to use the latest release version, but fall back to latest nightly if none found:
+ release = None
+ dl_asset = None
+ for channel in ["Release", "Beta", "Dev", "Nightly"]:
+ r = find_release(json_dict, channel=channel)
+ if r:
+ dl_assets = list(
+ filter(
+ lambda x: x["browser_download_url"].endswith("-linux-amd64.zip")
+ or x["browser_download_url"].endswith("-linux-x64.zip"),
+ r["assets"],
+ )
+ )
+ if len(dl_assets):
+ release = r
+ dl_asset = dl_assets[0]
+ break
+
+ if release is None or dl_asset is None:
+ raise hub.pkgtools.ebuild.BreezyError("Can't find a suitable release of Brave.")
+
+ version = release["tag_name"][1:] # strip leading 'v'
+
+ url = dl_asset["browser_download_url"]
+
+ ebuild = hub.pkgtools.ebuild.BreezyBuild(
+ **pkginfo, version=version, artifacts=[hub.pkgtools.ebuild.Artifact(url=url)]
+ )
+ ebuild.push()
+
+
+# vim: ts=4 sw=4 noet