feat(inventory/instances): dont set module location to allow underlying error location to bubble up
This commit is contained in:
@@ -120,22 +120,9 @@ let
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
*/
|
*/
|
||||||
makeExtensibleConfig =
|
|
||||||
f: args:
|
|
||||||
let
|
|
||||||
makeModuleExtensible =
|
|
||||||
eval:
|
|
||||||
eval.config
|
|
||||||
// {
|
|
||||||
__functor = _self: m: makeModuleExtensible (eval.extendModules { modules = lib.toList m; });
|
|
||||||
};
|
|
||||||
in
|
|
||||||
makeModuleExtensible (f args);
|
|
||||||
|
|
||||||
# Extend evalModules result by a module, returns .config.
|
# Extend evalModules result by a module, returns .config.
|
||||||
extendEval =
|
extendEval = eval: m: (eval.extendModules { modules = lib.toList m; }).config;
|
||||||
eval: m:
|
|
||||||
(eval.extendModules { modules = lib.toList m; } ).config;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Apply the settings to the instance
|
Apply the settings to the instance
|
||||||
@@ -151,20 +138,18 @@ let
|
|||||||
machines = lib.mapAttrs (machineName: v: {
|
machines = lib.mapAttrs (machineName: v: {
|
||||||
# TODO: evaluate the settings against the interface
|
# TODO: evaluate the settings against the interface
|
||||||
# settings = (evalMachineSettings { inherit roleName instanceName; inherit (v) settings; }).config;
|
# settings = (evalMachineSettings { inherit roleName instanceName; inherit (v) settings; }).config;
|
||||||
settings = (
|
settings =
|
||||||
evalMachineSettings {
|
(evalMachineSettings {
|
||||||
inherit roleName instanceName machineName;
|
inherit roleName instanceName machineName;
|
||||||
inherit (v) settings;
|
inherit (v) settings;
|
||||||
}
|
}).config;
|
||||||
).config;
|
|
||||||
}) role.machines;
|
}) role.machines;
|
||||||
# TODO: evaluate the settings against the interface
|
# TODO: evaluate the settings against the interface
|
||||||
settings = (
|
settings =
|
||||||
evalMachineSettings {
|
(evalMachineSettings {
|
||||||
inherit roleName instanceName;
|
inherit roleName instanceName;
|
||||||
inherit (role) settings;
|
inherit (role) settings;
|
||||||
}
|
}).config;
|
||||||
).config;
|
|
||||||
}) instance.roles;
|
}) instance.roles;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
@@ -332,20 +317,17 @@ in
|
|||||||
name = machineName;
|
name = machineName;
|
||||||
roles = lib.attrNames (lib.filterAttrs (_n: v: v.machines ? ${machineName}) roles);
|
roles = lib.attrNames (lib.filterAttrs (_n: v: v.machines ? ${machineName}) roles);
|
||||||
};
|
};
|
||||||
settings = (
|
settings =
|
||||||
evalMachineSettings {
|
(evalMachineSettings {
|
||||||
inherit roleName instanceName machineName;
|
inherit roleName instanceName machineName;
|
||||||
settings =
|
settings =
|
||||||
config.instances.${instanceName}.roles.${roleName}.machines.${machineName}.settings or { };
|
config.instances.${instanceName}.roles.${roleName}.machines.${machineName}.settings or { };
|
||||||
}
|
}).config;
|
||||||
).config;
|
extendSettings = extendEval (evalMachineSettings {
|
||||||
extendSettings = extendEval (
|
inherit roleName instanceName machineName;
|
||||||
evalMachineSettings {
|
settings =
|
||||||
inherit roleName instanceName machineName;
|
config.instances.${instanceName}.roles.${roleName}.machines.${machineName}.settings or { };
|
||||||
settings =
|
});
|
||||||
config.instances.${instanceName}.roles.${roleName}.machines.${machineName}.settings or { };
|
|
||||||
}
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
modules = [ v ];
|
modules = [ v ];
|
||||||
}).config;
|
}).config;
|
||||||
@@ -521,7 +503,8 @@ in
|
|||||||
imports = [
|
imports = [
|
||||||
# For error backtracing. This module was produced by the 'perMachine' function
|
# For error backtracing. This module was produced by the 'perMachine' function
|
||||||
# TODO: check if we need this or if it leads to better errors if we pass the underlying module locations
|
# TODO: check if we need this or if it leads to better errors if we pass the underlying module locations
|
||||||
(lib.setDefaultModuleLocation "clan.service: ${config.manifest.name} - via perMachine" machineResult.nixosModule)
|
# (lib.setDefaultModuleLocation "clan.service: ${config.manifest.name} - via perMachine" machineResult.nixosModule)
|
||||||
|
(machineResult.nixosModule)
|
||||||
] ++ instanceResults;
|
] ++ instanceResults;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user