diff --git a/custom/pkgs/by-category/default.nix b/custom/pkgs/by-category/default.nix new file mode 100644 index 0000000..9614c45 --- /dev/null +++ b/custom/pkgs/by-category/default.nix @@ -0,0 +1,25 @@ +{ + pkgs, + prev, + lib, + packagesFromTree, +}: +let + categoryFolders = { + python3Packages = ./python3Packages; + }; + + pyExts = + if categoryFolders ? python3Packages && builtins.pathExists categoryFolders.python3Packages then + [ + (pyFinal: _pyPrev: packagesFromTree categoryFolders.python3Packages pyFinal.callPackage) + ] + else + [ ]; +in +{ + pythonPackagesExtensions = (prev.pythonPackagesExtensions or [ ]) ++ pyExts; + + # optional: expose mapping for debugging + # inherit categoryFolders; +} diff --git a/custom/pkgs/default.nix b/custom/pkgs/default.nix index f9ea691..bce8587 100644 --- a/custom/pkgs/default.nix +++ b/custom/pkgs/default.nix @@ -5,7 +5,6 @@ ... }: let - dirs = path: lib.attrNames (lib.filterAttrs (_: t: t == "directory") (builtins.readDir path)); packagesFromTree = @@ -29,21 +28,16 @@ let acc // lib.foldl' (a: n: a // addOne n) { } names ) { } (dirs base); - byName = ./by-name; - # topLevel = if builtins.pathExists byName then packagesFromTree byName pkgs.callPackage else { }; + byNamePkgs = + if builtins.pathExists ./by-name then packagesFromTree ./by-name pkgs.callPackage else { }; - byPy3 = ./by-category/python3Packages; - # pyExts = - # if builtins.pathExists byPy3 then - # [ - # (pyFinal: _pyPrev: packagesFromTree byPy3 pyFinal.callPackage) - # ] - # else - # [ ]; + byCategoryPkgs = import ./by-category { + inherit + pkgs + prev + lib + packagesFromTree + ; + }; in -(packagesFromTree byName pkgs.callPackage) -// { - pythonPackagesExtensions = (prev.pythonPackagesExtensions or [ ]) ++ [ - (pyFinal: _pyPrev: packagesFromTree byPy3 pyFinal.callPackage) - ]; -} +byNamePkgs // byCategoryPkgs