refactor: make mapModules more easily readable

This commit is contained in:
Moritz Böhme 2023-04-10 15:23:33 +02:00
parent b606eb4b44
commit 7ae552d698
Signed by: moritz
GPG key ID: 970C6E89EB0547A9

View file

@ -16,7 +16,7 @@ lib.makeExtensible (_: rec {
mapModules = f: dir: mapModules = f: dir:
let let
filter = name: type: filterModules = name: type:
let let
isPublic = !(lib.hasPrefix "_" name); isPublic = !(lib.hasPrefix "_" name);
isSomething = type != null; isSomething = type != null;
@ -30,6 +30,8 @@ lib.makeExtensible (_: rec {
in in
isPublic && isSomething && isModule; isPublic && isSomething && isModule;
modulesInDir = lib.filterAttrs filterModules (builtins.readDir dir);
mkModule = name: _: mkModule = name: _:
let let
path = "${toString dir}/${name}"; path = "${toString dir}/${name}";
@ -40,7 +42,7 @@ lib.makeExtensible (_: rec {
in in
lib.nameValuePair normalizedName (f path); lib.nameValuePair normalizedName (f path);
in in
lib.mapAttrs' mkModule (lib.filterAttrs filter (builtins.readDir dir)); lib.mapAttrs' mkModule modulesInDir;
mapModules' = f: dir: lib.attrValues (mapModules f dir); mapModules' = f: dir: lib.attrValues (mapModules f dir);
}) })