nix-dots/flakes/lib.nix

31 lines
785 B
Nix

{
perSystem = {
inputs',
config,
pkgs,
...
}: let
# use nixpkgs lib instead of flake-parts lib
# avoids home-manager warning about version mismatch
inherit (pkgs) lib;
in {
_module.args.lib = lib.extend (
final: prev: {
my = let
lib = final;
getPaths = file: root:
builtins.filter builtins.pathExists (
map (dir: root + "/${dir}/${file}") (
lib.attrNames (lib.filterAttrs (name: type: type == "directory") (builtins.readDir root))
)
);
in {
inherit getPaths;
getModules = builtins.concatMap (getPaths "default.nix");
getHmModules = builtins.concatMap (getPaths "home.nix");
};
}
);
};
}