-{ pkgs ? import <nixpkgs> { } }:
-pkgs.python3Packages.callPackage ({ buildPythonPackage, gobject-introspection
- , gtk4, lib, pygobject3, wrapGAppsHook4, }:
+{ pkgs ? import <nixpkgs> { }, lint ? false }:
+pkgs.python3Packages.callPackage ({ autopep8, buildPythonPackage
+ , gobject-introspection, gtk4, lib, makeDesktopItem, mypy, pylint, pygobject3
+ , wrapGAppsHook4, }:
buildPythonPackage rec {
pname = "apps";
- version = "1.0";
+ version = "1.0.2";
+
src = lib.cleanSource ./.;
- nativeBuildInputs = [ gobject-introspection wrapGAppsHook4 ];
- buildInputs = [ gtk4 ];
+ doCheck = true;
+ checkPhase = "./test.sh";
+ nativeBuildInputs = [ gobject-introspection wrapGAppsHook4 ];
+ nativeCheckInputs = [ mypy ] ++ lib.optionals lint [ autopep8 pylint ];
+ buildInputs = [ gtk4 ];
pythonPath = [ pygobject3 ];
+ postInstall = ''
+ cp -r $desktopItem/share $out
+ '';
+
+ desktopItem = makeDesktopItem {
+ name = "Apps";
+ exec = "apps";
+ icon = ./apps.png;
+ comment = "Configure nix-env Apps";
+ desktopName = "Apps";
+ genericName = "Configure Apps";
+ categories = [ "Settings" ];
+ };
+
+ meta = {
+ description =
+ "A simple GUI for managing declarative nix-env user environments";
+ homepage = "https://git.scottworley.com/nix-env-apps";
+ license = pkgs.lib.licenses.gpl3;
+ maintainers = with pkgs.lib.maintainers; [ chkno ];
+ };
+
}) { }