about summary refs log tree commit diff
path: root/pkgs/development/tools/sauce-connect/update.sh
blob: d74cbe577b3c918c46f4e7fffb151ba0fecf32fe (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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