about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/misc/keepmenu/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/misc/keepmenu/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/misc/keepmenu/default.nix39
1 files changed, 27 insertions, 12 deletions
diff --git a/nixpkgs/pkgs/applications/misc/keepmenu/default.nix b/nixpkgs/pkgs/applications/misc/keepmenu/default.nix
index b448ebb06793..1e6735d65616 100644
--- a/nixpkgs/pkgs/applications/misc/keepmenu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/keepmenu/default.nix
@@ -1,28 +1,42 @@
-{ lib, python3Packages, fetchPypi, xvfb-run }:
+{ lib, python3Packages, fetchFromGitHub, xvfb-run, xdotool, dmenu }:
 
 python3Packages.buildPythonApplication rec {
   pname = "keepmenu";
-  version = "1.2.2";
+  version = "1.4.0";
+  format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "SeVNtONH1bn2hb2pBOVM3Oafrb+jARgfvRe7vUu6Gto=";
+  src = fetchFromGitHub {
+    owner = "firecat53";
+    repo = "keepmenu";
+    rev = version;
+    hash = "sha256-3vFg+9Nw+NhuPJbrmBahXwa13wXlBg5IMYwJ+unn88k=";
   };
 
-  preConfigure = ''
-    export HOME=$TMPDIR
-    mkdir -p $HOME/.config/keepmenu
-    cp config.ini.example $HOME/.config/keepmenu/config.ini
-  '';
+  nativeBuildInputs = with python3Packages; [
+    hatchling
+    hatch-vcs
+  ];
+
+  env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
   propagatedBuildInputs = with python3Packages; [
     pykeepass
     pynput
   ];
 
-  nativeCheckInputs = [ xvfb-run ];
+  nativeCheckInputs = [ xvfb-run xdotool dmenu ];
+
+  postPatch = ''
+    substituteInPlace tests/keepmenu-config.ini tests/tests.py \
+      --replace "/usr/bin/dmenu" "dmenu"
+  '';
+
   checkPhase = ''
-    xvfb-run python setup.py test
+    runHook preCheck
+
+    xvfb-run python tests/tests.py
+
+    runHook postCheck
   '';
 
   pythonImportsCheck = [ "keepmenu" ];
@@ -32,5 +46,6 @@ python3Packages.buildPythonApplication rec {
     description = "Dmenu/Rofi frontend for Keepass databases";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ elliot ];
+    platforms = platforms.linux;
   };
 }