Allow root module to be a function

This commit is contained in:
Archit Gupta 2023-04-20 18:19:33 -07:00
parent ef5d482ea6
commit 76eb12e51b

View File

@ -339,8 +339,9 @@ let
# Root module with autoloads, normalization, and additional attrs. # Root module with autoloads, normalization, and additional attrs.
root' = root' =
let let
nixDir = root.nixDir or (src + ./nix); resolvedRoot = applyNonSysArgs root;
fullRoot = (autoImportAttrs nixDir rootAttrs) // root; nixDir = resolvedRoot.nixDir or (src + ./nix);
fullRoot = (autoImportAttrs nixDir rootAttrs) // resolvedRoot;
in in
normalizeModule fullRoot // { normalizeModule fullRoot // {
modules = fullRoot.modules or modules = fullRoot.modules or
@ -352,7 +353,6 @@ let
perSystem = filterArgs (fullRoot.perSystem or { }); perSystem = filterArgs (fullRoot.perSystem or { });
outputs = applyNonSysArgs (fullRoot.outputs or { }); outputs = applyNonSysArgs (fullRoot.outputs or { });
inherit nixDir; inherit nixDir;
raw = root;
}; };
modules = [ baseModule ] ++ builtinModules ++ root'.modules; modules = [ baseModule ] ++ builtinModules ++ root'.modules;