dotfiles/overlays/pkgs.nix
2025-02-05 17:25:29 -05:00

25 lines
569 B
Nix

_final: prev:
let
listToAttrsByField =
field: list:
builtins.listToAttrs (
map (v: {
name = v.${field};
value = v;
}) list
);
lib = prev.lib;
packagesDirectory = lib.filesystem.listFilesRecursive ../pkgs;
packages = lib.pipe packagesDirectory [
# Get only files called package.nix
(builtins.filter (name: (lib.hasSuffix "package.nix" name)))
# Apply callPackage to create a derivation
(builtins.map prev.callPackage)
# Convert the list to an attrset
(listToAttrsByField "name")
];
in
packages