summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xscripts/get_latest_snapshot.sh33
1 files changed, 33 insertions, 0 deletions
diff --git a/scripts/get_latest_snapshot.sh b/scripts/get_latest_snapshot.sh
new file mode 100755
index 000000000..39cb54798
--- /dev/null
+++ b/scripts/get_latest_snapshot.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+set -eu
+
+# Cheeky little convenience script for fetching
+# the latest snapshot build of GoToSocial from
+# the Minio S3 bucket.
+#
+# Requires curl and jq.
+#
+# Change the variables below for your particular
+# platform and architecture (default linux amd64).
+GTS_PLATFORM="linux"
+GTS_ARCH="amd64"
+GTS_FILENAME="gotosocial_${GTS_PLATFORM}_${GTS_ARCH}.tar.gz"
+
+GITHUB_API_HOST="api.github.com"
+GITHUB_ORG="superseriousbusiness"
+GITHUB_REPO="gotosocial"
+GITHUB_BRANCH="main"
+GITHUB_ENDPOINT="https://${GITHUB_API_HOST}/repos/${GITHUB_ORG}/${GITHUB_REPO}/commits/${GITHUB_BRANCH}"
+
+echo "fetching latest hash from endpoint '${GITHUB_ENDPOINT}'"
+LATEST_HASH="$(curl --silent --fail --retry 5 --retry-max-time 180 --max-time 30 "${GITHUB_ENDPOINT}" | jq -r .sha)"
+echo "got latest hash = ${LATEST_HASH}"
+
+MINIO_HOST="s3.superseriousbusiness.org"
+MINIO_BUCKET="gotosocial-snapshots"
+MINIO_ENDPOINT="https://${MINIO_HOST}/${MINIO_BUCKET}/${LATEST_HASH}/${GTS_FILENAME}"
+
+echo "fetching latest snapshot tar.gz from endpoint '${MINIO_ENDPOINT}'"
+curl --silent --fail --retry 5 --retry-max-time 600 --max-time 1800 "${MINIO_ENDPOINT}" --output "./${GTS_FILENAME}"
+echo "got latest snapshot!"