{ nixpkgs }: with nixpkgs.lib; { # list nix files from a specific directory dir nixFilesIn = dir: { filterRule ? (name: _: name) }: builtins.attrValues (builtins.mapAttrs (name: _: name) (filterAttrs filterRule (builtins.readDir dir))); importModulesIn = dir: let modules = nixFilesIn dir { filterRule = (name: _: (lib.hasSuffix ".nix" name)); }; in builtins.foldl' (imports: mod: imports // (import (./. + "/${dir}/${mod}") #{ # pkgs = pkgs; #} )) { } modules; }