about summary refs log tree commit diff
path: root/pkgs/development/tools/sauce-connect/update.sh
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/tools/sauce-connect/update.sh')
-rwxr-xr-xpkgs/development/tools/sauce-connect/update.sh27
1 files changed, 27 insertions, 0 deletions
diff --git a/pkgs/development/tools/sauce-connect/update.sh b/pkgs/development/tools/sauce-connect/update.sh
new file mode 100755
index 000000000000..d74cbe577b3c
--- /dev/null
+++ b/pkgs/development/tools/sauce-connect/update.sh
@@ -0,0 +1,27 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p common-updater-scripts curl jq
+# API documentation: https://docs.saucelabs.com/dev/api/connect/
+
+set -Eeuo pipefail
+shopt -s lastpipe
+die() {
+    echo -e "${BASH_SOURCE[0]}:${BASH_LINENO[0]}" ERROR: "$@" >&2
+    exit 1
+}
+# shellcheck disable=2154
+trap 's=$?; die "$BASH_COMMAND"; exit $s' ERR
+
+# Versions may not be updated simultaneously across all platforms, so need to figure out the latest
+# version that includes both platforms. For example, currently the latest on Linux is 4.9.2 while
+# Mac is 4.9.1.
+response=$(curl -fsSL 'https://api.us-west-1.saucelabs.com/rest/v1/public/tunnels/info/versions?all=true')
+all_versions=$(jq --exit-status --raw-output \
+    '.all_downloads | to_entries[] | select(.value | has("linux") and has("osx")) | .key' \
+    <<< "$response")
+latest_version=$(sort --version-sort <<< "$all_versions" | tail -n 1)
+for platform in x86_64-linux x86_64-darwin; do
+    update-source-version sauce-connect 0 "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" \
+        --source-key="passthru.sources.$platform"
+    update-source-version sauce-connect "$latest_version" \
+        --source-key="passthru.sources.$platform"
+done