servers/nixos/lib/packages.nix

29 lines
649 B
Nix
Raw Normal View History

2025-01-26 18:49:45 -06:00
pkgs: let
getPackages = dir: let
entries = builtins.readDir dir;
procEntry = name: type: let
path = dir + "/${name}";
in
if type == "directory"
then
(
if builtins.pathExists (path + "/default.nix")
then [path]
else []
)
else [];
in
builtins.concatLists (
builtins.attrValues (
builtins.mapAttrs procEntry entries
)
);
buildPackage = path: {
name = builtins.baseNameOf (toString path);
value = pkgs.callPackage (path + "/default.nix") {};
};
in
builtins.listToAttrs (builtins.map buildPackage (getPackages ../packages))