oizys/lib/find-modules.nix

35 lines
632 B
Nix
Raw Normal View History

2024-05-06 14:32:00 -05:00
{ ... }:
let
inherit (builtins)
concatLists
attrValues
mapAttrs
elemAt
match
readDir
;
in
rec {
2025-01-27 14:20:14 -06:00
handleModule =
dir: name: type:
if type == "regular" then
[
{
name = elemAt (match "(.*)\\.nix" name) 0;
value = dir + "/${name}";
}
]
else if (readDir (dir + "/${name}")) ? "default.nix" then
[
{
inherit name;
value = dir + "/${name}";
}
]
else
findModulesList (dir + "/${name}");
findModulesList = dir: (readDir dir) |> mapAttrs (handleModule dir) |> attrValues |> concatLists;
2024-03-17 06:17:19 -05:00
}