git.delta.rocks / jrsonnet / refs/commits / f8886e1c85c3

difftreelog

feat set modulesPath specialArg

ypstxxyqYaroslav Bolyukin2026-01-22parent: #5973a7a.patch.diff
in: trunk

2 files changed

modifiedlib/flakePart.nixdiffbeforeafterboth
33 # To use user-provided nixpkgs, we first need to extract wanted nixpkgs attribute,33 # To use user-provided nixpkgs, we first need to extract wanted nixpkgs attribute,
34 # to do that, evaluate all the modules with only needed option declared.34 # to do that, evaluate all the modules with only needed option declared.
35 bootstrapEval = lib.evalModules {35 bootstrapEval = lib.evalModules {
36 class = "fleet";
37 prefix = ["fleetConfiguration"];
36 modules = [38 modules = [
37 module39 module
38 {40 {
50 };52 };
51 bootstrapNixpkgs = bootstrapEval.config.nixpkgs.buildUsing;53 bootstrapNixpkgs = bootstrapEval.config.nixpkgs.buildUsing;
52 normalEval = bootstrapNixpkgs.lib.evalModules {54 normalEval = bootstrapNixpkgs.lib.evalModules {
55 class = "fleet";
56 prefix = ["fleetConfiguration"];
53 modules = (import ../modules/module-list.nix) ++ [57 modules = (import ../modules/module-list.nix) ++ [
54 module58 module
55 (59 (
modifiedmodules/nixos.nixdiffbeforeafterboth
--- a/modules/nixos.nix
+++ b/modules/nixos.nix
@@ -37,14 +37,17 @@
             module:
             let
               inherit (hostArgs.config) system;
+              modulesPath = "${config.nixpkgs.buildUsing}/nixos/modules";
             in
             config.nixpkgs.buildUsing.lib.evalModules {
-              modules = (import "${config.nixpkgs.buildUsing}/nixos/modules/module-list.nix") ++ [
+              class = "nixos";
+              prefix = ["fleetConfiguration" "hosts" hostArgs.config._module.args.name "nixos"];
+              modules = (import "${modulesPath}/module-list.nix") ++ [
                 (module // { key = "attr<host.nixos>"; })
                 (config.nixos // { key = "attr<fleet.nixos>"; })
               ];
               specialArgs = {
-                inherit fleetLib inputs self;
+                inherit fleetLib inputs self modulesPath;
                 inputs' = mapAttrs (
                   inputName: input:
                   builtins.addErrorContext
@@ -56,6 +59,9 @@
                         "input is not a flake, perhaps flake = false was added to te input declaration?"
                     )
                 ) inputs;
+                self' = builtins.addErrorContext "while retrieving system-dependent attributes for a flake's own outputs" (
+                  _fleetFlakeRootConfig.perInput system self
+                );
               };
             };
         };
@@ -68,7 +74,7 @@
         #   (mkRemovedOptionModule ["nixosModules"] "replaced with hosts.*.nixos.imports.")
         # ];
         nixos = {
-          config._module.args = {
+          _module.args = {
             nixosHosts = mapAttrs (_: value: value.nixos_unchecked.config) config.hosts;
             hosts = config.hosts;
             host = hostArgs.config;