| pkgs_or_lib: |
| let |
| is_pkgs = pkgs_or_lib ? lib; |
| lib = if is_pkgs then pkgs_or_lib.lib else pkgs_or_lib; |
| utils = lib.pipe ./. [ |
| (import ./nixFilesInWithName.nix lib) |
| (builtins.map (file: rec { |
| name = lib.removeSuffix ".nix" file.name; |
| func = import file.path; |
| accepts_pkgs = builtins.hasAttr "pkgs" (builtins.functionArgs func); |
| value = |
| if accepts_pkgs then |
| func |
| (builtins.intersectAttrs (builtins.functionArgs func) { |
| inherit |
| lib utils; pkgs = pkgs_or_lib; |
| }) |
| else if is_pkgs |
| then func lib |
| else |
| func pkgs_or_lib; |
| include = file.name != "default.nix" && (!accepts_pkgs || is_pkgs); |
| })) |
| (builtins.filter (utility: utility.include)) |
| builtins.listToAttrs |
| ]; |
| in |
| utils |