diff --git a/pkgs/by-name/ms/msedgedriver/package.nix b/pkgs/by-name/ms/msedgedriver/package.nix new file mode 100644 index 000000000000..d576d98ecea3 --- /dev/null +++ b/pkgs/by-name/ms/msedgedriver/package.nix @@ -0,0 +1,84 @@ +{ + 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"; + }; +})