sauce-connect: 4.5.4 -> 4.9.1

Latest version on Linux is actually 4.9.2, but latest on Mac is 4.9.1,
so only updating to 4.9.1 for consistency between the two.

Also added passthru.updateScript to keep this package up to date in the
future, with associated refactoring to make that possible.
This commit is contained in:
Caleb Chase 2023-12-07 15:04:10 -06:00
parent 2c7f3c0fb7
commit d31e17fa56
2 changed files with 46 additions and 15 deletions

View File

@ -2,20 +2,24 @@
stdenv.mkDerivation rec {
pname = "sauce-connect";
version = "4.5.4";
version = "4.9.1";
src = fetchurl (
if stdenv.hostPlatform.system == "x86_64-linux" then {
url = "https://saucelabs.com/downloads/sc-${version}-linux.tar.gz";
sha256 = "1w8fw47q4bzpk5jfagmc0cbp69jdd6jcv2xl1gx91cbp7xd8mcbf";
} else if stdenv.hostPlatform.system == "i686-linux" then {
url = "https://saucelabs.com/downloads/sc-${version}-linux32.tar.gz";
sha256 = "1h9n1mzmrmlrbd0921b0sgg7m8z0w71pdb5sif6h1b9f97cp353x";
} else {
url = "https://saucelabs.com/downloads/sc-${version}-osx.zip";
sha256 = "0rkyd402f1n92ad3w1460j1a4m46b29nandv4z6wvg2pasyyf2lj";
}
);
passthru = {
sources = {
x86_64-linux = fetchurl {
url = "https://saucelabs.com/downloads/sc-${version}-linux.tar.gz";
hash = "sha256-S3vzng6b0giB6Zceaxi62pQOEHysIR/vVQmswkEZ0/M=";
};
x86_64-darwin = fetchurl {
url = "https://saucelabs.com/downloads/sc-${version}-osx.zip";
hash = "sha256-6tJayqo+p7PMz8M651ikHz6tEjGjRIffOqQBchkpW5Q=";
};
aarch64-darwin = passthru.sources.x86_64-darwin;
};
};
src = passthru.sources.${stdenv.hostPlatform.system}
or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
nativeBuildInputs = [ unzip ];
@ -38,7 +42,7 @@ stdenv.mkDerivation rec {
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
license = licenses.unfree;
homepage = "https://docs.saucelabs.com/reference/sauce-connect/";
maintainers = with maintainers; [offline];
platforms = platforms.linux ++ platforms.darwin;
maintainers = with maintainers; [ offline ];
platforms = builtins.attrNames passthru.sources;
};
}

View File

@ -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