summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@baturin.org>2021-01-31 01:43:19 +0700
committerDaniil Baturin <daniil@baturin.org>2021-01-31 01:48:56 +0700
commitde0e7e483ba0e3b059b74899c28aff95f4293726 (patch)
tree3c9cb8d6b0f2d10360e7707f45be134407796dd2 /scripts
parentd930d384e4b49bc59a0394b7a67808b4110fdcca (diff)
downloadcommunity.vyos.net-de0e7e483ba0e3b059b74899c28aff95f4293726.tar.gz
community.vyos.net-de0e7e483ba0e3b059b74899c28aff95f4293726.zip
Add a nightly builds pages.
Not yet public, until nightly builds on S3 are public.
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/list-nightly-builds.py69
1 files changed, 69 insertions, 0 deletions
diff --git a/scripts/list-nightly-builds.py b/scripts/list-nightly-builds.py
new file mode 100755
index 0000000..6de4058
--- /dev/null
+++ b/scripts/list-nightly-builds.py
@@ -0,0 +1,69 @@
+#!/usr/bin/env python3
+#
+# Builds a list of nightly builds from S3
+#
+# Requires the following environment variables:
+# SNAPSHOTS_BUCKET
+# AWS_ACCESS_KEY_ID
+# AWS_SECRET_ACCESS_KEY
+
+import os
+import re
+import json
+
+import boto3
+
+import jinja2
+
+from functools import cmp_to_key
+
+bucket = os.getenv("SNAPSHOTS_BUCKET")
+
+def make_link(s, f):
+ f = re.sub(r'\s+', '+', f)
+ return "https://s3.amazonaws.com/{0}/{1}".format(bucket, f)
+
+def compare(l, r):
+ try:
+ regex = r'\-(\d+)\-'
+ l_date = int(re.search(regex, l).group(1))
+ r_date = int(re.search(regex, r).group(1))
+ if l_date == r_date:
+ return 0
+ elif l_date > r_date:
+ return 1
+ else:
+ return -1
+ except:
+ return(-1)
+
+
+s3 = boto3.client('s3')
+object_listing = s3.list_objects_v2(Bucket=bucket, Prefix='rolling')
+data = object_listing['Contents']
+
+files = []
+for f in data:
+ files.append(f['Key'])
+
+file_names = list(set(map(lambda s: re.sub(r'rolling/(.*?)', r'\1', s), files)))
+file_names.sort(reverse=True, key=cmp_to_key(compare))
+
+builds = []
+
+for name in file_names:
+ build = {}
+ build['file'] = name
+ build['link'] = make_link('rolling', name)
+
+ builds.append(build)
+
+tmpl = jinja2.Template("""
+<ul>
+{% for b in builds %}
+ <li><a href="{{b.link}}">{{b.file}}</a></li>
+{% endfor %}
+</ul>
+""")
+
+print(tmpl.render(builds=builds))