difftreelog
feat set modulesPath specialArg
in: trunk
2 files changed
lib/flakePart.nixdiffbeforeafterboth33 # 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 module38 {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 module55 (59 (modules/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;