{ lib, root, exclude ? ["default"], }: 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 (basename name) exclude; entry = name: _: { name = basename name; value = import (root + "/${name}"); }; in mapAttrs' entry (filterAttrs isMatch (readDir root))