21 lines
448 B
Nix
21 lines
448 B
Nix
|
{lib}: {
|
||
|
root,
|
||
|
exclude ? [],
|
||
|
}:
|
||
|
with builtins;
|
||
|
with lib;
|
||
|
# http://chriswarbo.net/projects/nixos/useful_hacks.html
|
||
|
let
|
||
|
basename = removeSuffix ".nix";
|
||
|
|
||
|
isMatch = name: type:
|
||
|
(hasSuffix ".nix" name || type == "directory")
|
||
|
&& ! elem name (map basename exclude);
|
||
|
|
||
|
entry = name: _: {
|
||
|
name = basename name;
|
||
|
value = import (root + "/${name}");
|
||
|
};
|
||
|
in
|
||
|
mapAttrs' entry (filterAttrs isMatch (readDir root))
|