sesh: 2.7.0 -> 2.8.0 (#371799)
[NixPkgs.git] / pkgs / development / tools / selenium / chromedriver / binary.nix
blobe4b9b65909a366451f9bc9287ff7dcfe20dfcbca
2   lib,
3   stdenv,
4   fetchzip,
5   unzip,
6   testers,
7   chromedriver,
8 }:
10 let
11   upstream-info =
12     (lib.importJSON ../../../../applications/networking/browsers/chromium/info.json).chromium;
14   # See ./source.nix for Linux
15   allSpecs = {
16     x86_64-darwin = {
17       system = "mac-x64";
18       hash = upstream-info.chromedriver.hash_darwin;
19     };
21     aarch64-darwin = {
22       system = "mac-arm64";
23       hash = upstream-info.chromedriver.hash_darwin_aarch64;
24     };
25   };
27   spec =
28     allSpecs.${stdenv.hostPlatform.system}
29       or (throw "missing chromedriver binary for ${stdenv.hostPlatform.system}");
31   inherit (upstream-info) version;
33 stdenv.mkDerivation {
34   pname = "chromedriver";
35   inherit version;
37   src = fetchzip {
38     url = "https://storage.googleapis.com/chrome-for-testing-public/${version}/${spec.system}/chromedriver-${spec.system}.zip";
39     inherit (spec) hash;
40   };
42   nativeBuildInputs = [ unzip ];
44   installPhase = ''
45     install -m555 -D "chromedriver" $out/bin/chromedriver
46   '';
48   passthru.tests.version = testers.testVersion { package = chromedriver; };
50   meta = with lib; {
51     homepage = "https://chromedriver.chromium.org/";
52     description = "WebDriver server for running Selenium tests on Chrome";
53     longDescription = ''
54       WebDriver is an open source tool for automated testing of webapps across
55       many browsers. It provides capabilities for navigating to web pages, user
56       input, JavaScript execution, and more. ChromeDriver is a standalone
57       server that implements the W3C WebDriver standard.
58     '';
59     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
60     license = licenses.bsd3;
61     maintainers = with maintainers; [ primeos ];
62     # Note from primeos: By updating Chromium I also update Google Chrome and
63     # ChromeDriver.
64     platforms = platforms.darwin;
65     mainProgram = "chromedriver";
66   };