85 lines
2.2 KiB
Nix
85 lines
2.2 KiB
Nix
|
{
|
||
|
autoPatchelfHook,
|
||
|
fetchzip,
|
||
|
glib,
|
||
|
lib,
|
||
|
libxcb,
|
||
|
nspr,
|
||
|
nss,
|
||
|
stdenvNoCC,
|
||
|
}:
|
||
|
|
||
|
stdenvNoCC.mkDerivation (finalAttrs: {
|
||
|
pname = "msedgedriver";
|
||
|
# finding a version that has all 4 builds is a pain
|
||
|
# https://msedgewebdriverstorage.z22.web.core.windows.net/?form=MA13LH
|
||
|
version = "130.0.2849.1";
|
||
|
|
||
|
src =
|
||
|
let
|
||
|
inherit (stdenvNoCC.hostPlatform) system;
|
||
|
selectSystem = attrs: attrs.${system} or (throw "Unsupported system: ${system}");
|
||
|
suffix = selectSystem {
|
||
|
x86_64-linux = "linux64";
|
||
|
aarch64-linux = "arm64";
|
||
|
x86_64-darwin = "mac64";
|
||
|
aarch64-darwin = "mac64_m1";
|
||
|
};
|
||
|
|
||
|
hash = selectSystem {
|
||
|
x86_64-linux = "sha256-U6YGD2PAhVUa7f+R5pmKLazGLOBbf3bRqzlwIJewA+w=";
|
||
|
aarch64-linux = "sha256-QJ1jRw8kkWbT8US5qI8DMZI/7Q8yJWpFXrfzGdxDWKE=";
|
||
|
x86_64-darwin = "sha256-Ejcv1DtuEiLJvTsv48AwoCQlFO3xM9PkM3HvZG65AC4=";
|
||
|
aarch64-darwin = "sha256-ykn4bYREE6xmJY02WiCRGsGnyWjnmnZM8FemK4XZqhc=";
|
||
|
};
|
||
|
in
|
||
|
fetchzip {
|
||
|
url = "https://msedgedriver.azureedge.net/${finalAttrs.version}/edgedriver_${suffix}.zip";
|
||
|
inherit hash;
|
||
|
stripRoot = false;
|
||
|
};
|
||
|
|
||
|
buildInputs = [
|
||
|
glib
|
||
|
libxcb
|
||
|
nspr
|
||
|
nss
|
||
|
];
|
||
|
|
||
|
nativeBuildInputs = lib.optionals (!stdenvNoCC.hostPlatform.isDarwin) [ autoPatchelfHook ];
|
||
|
|
||
|
installPhase =
|
||
|
if stdenvNoCC.hostPlatform.isDarwin then
|
||
|
''
|
||
|
runHook preInstall
|
||
|
|
||
|
mkdir -p $out/{Applications/msedgedriver,bin}
|
||
|
cp -R . $out/Applications/msedgedriver
|
||
|
|
||
|
runHook postInstall
|
||
|
''
|
||
|
else
|
||
|
''
|
||
|
runHook preInstall
|
||
|
|
||
|
install -m777 -D "msedgedriver" $out/bin/msedgedriver
|
||
|
|
||
|
runHook postInstall
|
||
|
'';
|
||
|
|
||
|
meta = {
|
||
|
homepage = "https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver";
|
||
|
description = "WebDriver implementation that controls an Edge browser running on the local machine";
|
||
|
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||
|
license = lib.licenses.unfree;
|
||
|
maintainers = with lib.maintainers; [ cholli ];
|
||
|
platforms = [
|
||
|
"x86_64-linux"
|
||
|
"aarch64-linux"
|
||
|
"x86_64-darwin"
|
||
|
"aarch64-darwin"
|
||
|
];
|
||
|
mainProgram = "msedgedriver";
|
||
|
};
|
||
|
})
|