diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 60f7b2be521..3e46cd3893e 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2749,6 +2749,11 @@ githubId = 26877687; name = "Yurii Izorkin"; }; + jasoncarr = { + email = "jcarr250@gmail.com"; + github = "jasoncarr0"; + name = "Jason Carr"; + }; j-keck = { email = "jhyphenkeck@gmail.com"; github = "j-keck"; diff --git a/pkgs/tools/security/lesspass-cli/default.nix b/pkgs/tools/security/lesspass-cli/default.nix new file mode 100644 index 00000000000..afcdf0c0a07 --- /dev/null +++ b/pkgs/tools/security/lesspass-cli/default.nix @@ -0,0 +1,38 @@ +{ stdenv, python3, fetchFromGitHub }: + +let + inherit (python3.pkgs) buildPythonApplication pytest mock pexpect; +in +buildPythonApplication rec { + pname = "lesspass-cli"; + version = "9.0.0"; + + src = fetchFromGitHub { + owner = pname; + repo = pname; + rev = version; + sha256 = "1mdv0c0fn4d72iigy8hz4s7kf7q3pg4gjjadxwxyjwsalapnsapk"; + }; + sourceRoot = "source/cli"; + + # some tests are designed to run against code in the source directory - adapt to run against + # *installed* code + postPatch = '' + for f in tests/test_functional.py tests/test_interaction.py ; do + substituteInPlace $f --replace "lesspass/core.py" "-m lesspass.core" + done + ''; + + checkInputs = [ pytest mock pexpect ]; + checkPhase = '' + mv lesspass lesspass.hidden # ensure we're testing against *installed* package + pytest tests + ''; + + meta = with stdenv.lib; { + description = "Stateless password manager"; + homepage = https://lesspass.com; + maintainers = with maintainers; [ jasoncarr ]; + license = licenses.gpl3; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index aaf227224e7..74706fc3ebf 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -860,6 +860,8 @@ in lastpass-cli = callPackage ../tools/security/lastpass-cli { }; + lesspass-cli = callPackage ../tools/security/lesspass-cli { }; + pacparser = callPackage ../tools/networking/pacparser { }; pass = callPackage ../tools/security/pass { };