diff --git a/src/nix/hive/eval.nix b/src/nix/hive/eval.nix index 28e4471..e911404 100644 --- a/src/nix/hive/eval.nix +++ b/src/nix/hive/eval.nix @@ -445,13 +445,27 @@ let hive.defaults ] ++ configs ++ (import (npkgs.path + "/nixos/modules/module-list.nix")); specialArgs = hive.meta.specialArgs // { - inherit name nodes; + inherit name; + nodes = uncheckedNodes; modulesPath = npkgs.path + "/nixos/modules"; }; }; nodeNames = filter (name: ! elem name reservedNames) (attrNames hive); + # Used as the `nodes` argument in modules. We skip recursive type checking + # for performance. + uncheckedNodes = listToAttrs (map (name: let + configs = [ + { + _module.check = false; + } + ] ++ configsFor name; + in { + inherit name; + value = evalNode name configs; + }) nodeNames); + # Exported attributes # # Functions are intended to be called with `nix-instantiate --eval --json`