about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/security/lesspass-cli/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/security/lesspass-cli/default.nix')
-rw-r--r--nixpkgs/pkgs/tools/security/lesspass-cli/default.nix39
1 files changed, 39 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/tools/security/lesspass-cli/default.nix b/nixpkgs/pkgs/tools/security/lesspass-cli/default.nix
new file mode 100644
index 000000000000..ce64b6847fe2
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/lesspass-cli/default.nix
@@ -0,0 +1,39 @@
+{ lib, python3, fetchFromGitHub }:
+
+let
+  inherit (python3.pkgs) buildPythonApplication pytest mock pexpect;
+  repo = "lesspass";
+in
+buildPythonApplication rec {
+  pname = "lesspass-cli";
+  version = "9.1.9";
+
+  src = fetchFromGitHub {
+    owner = repo;
+    repo = repo;
+    rev = version;
+    sha256 = "126zk248s9r72qk9b8j27yvb8gglw49kazwz0sd69b5kkxvhz2dh";
+  };
+  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 lib; {
+    description = "Stateless password manager";
+    homepage = "https://lesspass.com";
+    maintainers = with maintainers; [ jasoncarr ];
+    license = licenses.gpl3;
+  };
+}