From 375b18fd32afac8f6fc290d6c738b27b016364e1 Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Tue, 8 Apr 2025 13:10:26 +0200 Subject: [PATCH] feat(inventory/instances): dont set module location to allow underlying error location to bubble up --- .../distributed-service/service-module.nix | 51 +++++++------------ 1 file changed, 17 insertions(+), 34 deletions(-) diff --git a/lib/inventory/distributed-service/service-module.nix b/lib/inventory/distributed-service/service-module.nix index 480cb3986..1ad03ed28 100644 --- a/lib/inventory/distributed-service/service-module.nix +++ b/lib/inventory/distributed-service/service-module.nix @@ -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. - extendEval = - eval: m: - (eval.extendModules { modules = lib.toList m; } ).config; + extendEval = eval: m: (eval.extendModules { modules = lib.toList m; }).config; /** Apply the settings to the instance @@ -151,20 +138,18 @@ let machines = lib.mapAttrs (machineName: v: { # TODO: evaluate the settings against the interface # settings = (evalMachineSettings { inherit roleName instanceName; inherit (v) settings; }).config; - settings = ( - evalMachineSettings { + settings = + (evalMachineSettings { inherit roleName instanceName machineName; inherit (v) settings; - } - ).config; + }).config; }) role.machines; # TODO: evaluate the settings against the interface - settings = ( - evalMachineSettings { + settings = + (evalMachineSettings { inherit roleName instanceName; inherit (role) settings; - } - ).config; + }).config; }) instance.roles; in { @@ -332,20 +317,17 @@ in name = machineName; roles = lib.attrNames (lib.filterAttrs (_n: v: v.machines ? ${machineName}) roles); }; - settings = ( - evalMachineSettings { + settings = + (evalMachineSettings { inherit roleName instanceName machineName; settings = config.instances.${instanceName}.roles.${roleName}.machines.${machineName}.settings or { }; - } - ).config; - extendSettings = extendEval ( - evalMachineSettings { - inherit roleName instanceName machineName; - settings = - config.instances.${instanceName}.roles.${roleName}.machines.${machineName}.settings or { }; - } - ); + }).config; + extendSettings = extendEval (evalMachineSettings { + inherit roleName instanceName machineName; + settings = + config.instances.${instanceName}.roles.${roleName}.machines.${machineName}.settings or { }; + }); }; modules = [ v ]; }).config; @@ -521,7 +503,8 @@ in imports = [ # 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 - (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; }; }