# Loop through all files and directories and try and import them as nixpkgs # overlays. I've given them access to nixpkgs unstable just incase ;) { lib, unstable, ... }: let files = builtins.readDir ./.; import_overlay = i: map (p: builtins.import (./. + ("/" + p)) { inherit unstable; }) i; in { nixpkgs.overlays = (files # files |> lib.filterAttrs (n: v: v == "regular") |> builtins.attrNames |> builtins.filter (inp: inp != "default.nix" && (builtins.match ".*\\.nix$" inp) != null) |> import_overlay) ++ (files # directories |> lib.filterAttrs (n: v: v == "directory") |> builtins.attrNames |> import_overlay); }