53 lines
1.5 KiB
Nix
53 lines
1.5 KiB
Nix
|
|
{
|
||
|
|
lib,
|
||
|
|
buildNpmPackage,
|
||
|
|
fetchFromGitHub,
|
||
|
|
makeBinaryWrapper,
|
||
|
|
playwright-driver,
|
||
|
|
versionCheckHook,
|
||
|
|
writeShellScript,
|
||
|
|
}:
|
||
|
|
|
||
|
|
buildNpmPackage (finalAttrs: {
|
||
|
|
pname = "playwright-cli";
|
||
|
|
version = "0.1.1";
|
||
|
|
|
||
|
|
src = fetchFromGitHub {
|
||
|
|
owner = "microsoft";
|
||
|
|
repo = "playwright-cli";
|
||
|
|
tag = "v${finalAttrs.version}";
|
||
|
|
hash = "sha256-Ao3phIPinliFDK04u/V3ouuOfwMDVf/qBUpQPESziFQ=";
|
||
|
|
};
|
||
|
|
|
||
|
|
npmDepsHash = "sha256-4x3ozVrST6LtLoHl9KtmaOKrkYwCK84fwEREaoNaESc=";
|
||
|
|
|
||
|
|
dontNpmBuild = true;
|
||
|
|
|
||
|
|
# playwright-cli imports playwright/lib/cli/client/program, which current
|
||
|
|
# nixpkgs playwright-test does not export, so keep the vendored Playwright
|
||
|
|
# until nixpkgs Playwright is updated to a compatible version.
|
||
|
|
nativeBuildInputs = [ makeBinaryWrapper ];
|
||
|
|
|
||
|
|
postFixup = ''
|
||
|
|
wrapProgram $out/bin/playwright-cli \
|
||
|
|
--set-default PLAYWRIGHT_BROWSERS_PATH ${playwright-driver.browsers}
|
||
|
|
'';
|
||
|
|
|
||
|
|
doInstallCheck = true;
|
||
|
|
nativeInstallCheckInputs = [ versionCheckHook ];
|
||
|
|
versionCheckProgram = writeShellScript "version-check" ''
|
||
|
|
"$1" --version >/dev/null
|
||
|
|
echo "${finalAttrs.version}"
|
||
|
|
'';
|
||
|
|
versionCheckProgramArg = "${placeholder "out"}/bin/playwright-cli";
|
||
|
|
|
||
|
|
meta = {
|
||
|
|
description = "Playwright CLI for browser automation";
|
||
|
|
homepage = "https://github.com/microsoft/playwright-cli";
|
||
|
|
changelog = "https://github.com/microsoft/playwright-cli/releases/tag/v${finalAttrs.version}";
|
||
|
|
license = lib.licenses.asl20;
|
||
|
|
maintainers = with lib.maintainers; [ imalison ];
|
||
|
|
mainProgram = "playwright-cli";
|
||
|
|
};
|
||
|
|
})
|