79 lines
2.3 KiB
Nix
79 lines
2.3 KiB
Nix
{
|
|
stdenv,
|
|
lib,
|
|
fetchurl,
|
|
zlib,
|
|
unzip,
|
|
installShellFiles,
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
pname = "sauce-connect";
|
|
version = "5.2.2";
|
|
|
|
passthru = {
|
|
sources = {
|
|
x86_64-linux = fetchurl {
|
|
url = "https://saucelabs.com/downloads/sauce-connect/${version}/sauce-connect-${version}_linux.x86_64.tar.gz";
|
|
hash = "sha256-JyQkXp7/jrgWEKNPHUw/exXc5nqjejHWsy3IiEJ5gqU=";
|
|
};
|
|
aarch64-linux = fetchurl {
|
|
url = "https://saucelabs.com/downloads/sauce-connect/${version}/sauce-connect-${version}_linux.aarch64.tar.gz";
|
|
hash = "sha256-8EZjqid4/r2p8jZxQiI1x1IyDFXHwWDbmCOVXdnmmgs=";
|
|
};
|
|
x86_64-darwin = fetchurl {
|
|
url = "https://saucelabs.com/downloads/sauce-connect/${version}/sauce-connect-${version}_darwin.all.zip";
|
|
hash = "sha256-E4S7hbLSnRd5M/yOiUyPasYNg7ZmQ10S6fyn9Qs1BFk=";
|
|
};
|
|
aarch64-darwin = passthru.sources.x86_64-darwin;
|
|
};
|
|
updateScript = ./update.sh;
|
|
};
|
|
|
|
src =
|
|
passthru.sources.${stdenv.hostPlatform.system}
|
|
or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
|
|
|
unpackPhase = ''
|
|
runHook preUnpack
|
|
|
|
mkdir source
|
|
${lib.optionalString stdenv.hostPlatform.isLinux "tar -zxvf $src -C source"}
|
|
${lib.optionalString stdenv.hostPlatform.isDarwin "unzip $src -d source"}
|
|
|
|
runHook postUnpack
|
|
'';
|
|
|
|
sourceRoot = "source";
|
|
|
|
nativeBuildInputs = [
|
|
unzip
|
|
installShellFiles
|
|
];
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
install -Dm755 sc $out/bin/sc
|
|
installShellCompletion --bash --name sc.bash completions/sc.bash
|
|
installShellCompletion --fish --name sc.fish completions/sc.fish
|
|
installShellCompletion --zsh --name _sc completions/sc.zsh
|
|
install -Dm644 LICENSE $out/share/licenses/sauce-connect/LICENSE
|
|
install -Dm644 LICENSE.3RD_PARTY $out/share/licenses/sauce-connect/LICENSE.3RD_PARTY
|
|
install -Dm644 sauce-connect.yaml $out/etc/sauce-connect.yaml
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
dontStrip = true;
|
|
|
|
meta = {
|
|
description = "Secure tunneling app for executing tests securely when testing behind firewalls";
|
|
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
|
license = lib.licenses.unfree;
|
|
homepage = "https://docs.saucelabs.com/reference/sauce-connect/";
|
|
maintainers = with lib.maintainers; [ offline ];
|
|
platforms = builtins.attrNames passthru.sources;
|
|
};
|
|
}
|