From 15c5d539fc0e067d46f7f75db13a841dc6b64890 Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Mon, 30 Jun 2025 16:02:56 +0200 Subject: [PATCH] clanServices: remove unnecessary localModules --- lib/modules/clan/module.nix | 2 +- lib/modules/inventory/default.nix | 2 +- .../distributed-service/inventory-adapter.nix | 2 -- .../distributed-service/resolveModule.nix | 19 ++++++++------ .../distributed-service/tests/default.nix | 25 +++++++++---------- 5 files changed, 26 insertions(+), 24 deletions(-) diff --git a/lib/modules/clan/module.nix b/lib/modules/clan/module.nix index da554b4bf..6f47050cb 100644 --- a/lib/modules/clan/module.nix +++ b/lib/modules/clan/module.nix @@ -248,7 +248,7 @@ in { distributedServices = clanLib.inventory.mapInstances { inherit (config) inventory; - inherit localModuleSet flakeInputs; + inherit flakeInputs; clanCoreModules = clan-core.clan.modules; prefix = [ "distributedServices" ]; }; diff --git a/lib/modules/inventory/default.nix b/lib/modules/inventory/default.nix index e19c7b277..7904d0ebe 100644 --- a/lib/modules/inventory/default.nix +++ b/lib/modules/inventory/default.nix @@ -1,6 +1,6 @@ { lib, - clanLib + clanLib, }: let services = clanLib.callLib ./distributed-service/inventory-adapter.nix { }; diff --git a/lib/modules/inventory/distributed-service/inventory-adapter.nix b/lib/modules/inventory/distributed-service/inventory-adapter.nix index ded0de9f6..15120bed3 100644 --- a/lib/modules/inventory/distributed-service/inventory-adapter.nix +++ b/lib/modules/inventory/distributed-service/inventory-adapter.nix @@ -24,7 +24,6 @@ in flakeInputs, # The clan inventory inventory, - localModuleSet, clanCoreModules, prefix ? [ ], }: @@ -37,7 +36,6 @@ in let resolvedModule = resolveModule { moduleSpec = instance.module; - inherit localModuleSet; inherit flakeInputs clanCoreModules; }; diff --git a/lib/modules/inventory/distributed-service/resolveModule.nix b/lib/modules/inventory/distributed-service/resolveModule.nix index 1a423079a..b4ba548e4 100644 --- a/lib/modules/inventory/distributed-service/resolveModule.nix +++ b/lib/modules/inventory/distributed-service/resolveModule.nix @@ -2,11 +2,9 @@ { moduleSpec, flakeInputs, - localModuleSet, clanCoreModules, }: let - inputName = if moduleSpec.input == null then "" else moduleSpec.input; inputError = throw '' Flake doesn't provide input with name '${moduleSpec.input}' @@ -31,20 +29,27 @@ let input = if moduleSpec.input == null then { clan.modules = clanCoreModules; } - else if moduleSpec.input == "self" then - { clan.modules = localModuleSet; } else flakeInputs.${moduleSpec.input} or inputError; in input.clan.modules - or (throw "flake input ${moduleSpec.input} doesn't export any clan services via the `clan.modules` output attribute"); + or (throw "flake input '${moduleSpec.input}' doesn't export any clan services via the `clan.modules` output attribute"); resolvedModule = resolvedModuleSet.${moduleSpec.name} or (throw '' - flake input '${inputName}' doesn't provide clan-module with name ${moduleSpec.name}. + ${ + lib.optionalString ( + moduleSpec.input != null + ) "flake input '${moduleSpec.input}' doesn't provide clan-module with name '${moduleSpec.name}'." + }${ + lib.optionalString ( + moduleSpec.input == null + ) "clan-core doesn't provide clan-module with name '${moduleSpec.name}'." + } - Set `module.name = "self"` if the module is defined in your own flake. + Set `module.input = "self"` if the module is defined in your own flake. Set `module.input = "" if the module is defined by a flake input called ``. + Unset `module.input` (or set module.input = null) - to use the clan-core module '${moduleSpec.name}' ''); in resolvedModule diff --git a/lib/modules/inventory/distributed-service/tests/default.nix b/lib/modules/inventory/distributed-service/tests/default.nix index 5cfc6f5b2..0ccbe3d7f 100644 --- a/lib/modules/inventory/distributed-service/tests/default.nix +++ b/lib/modules/inventory/distributed-service/tests/default.nix @@ -27,28 +27,27 @@ let ]; }).config; - flakeInputsFixture = { - # Example upstream module - upstream.clan.modules = { - uzzi = { - _class = "clan.service"; - manifest = { - name = "uzzi-from-upstream"; - }; - }; - }; - }; - callInventoryAdapter = inventoryModule: let inventory = evalInventory inventoryModule; + flakeInputsFixture = { + self.clan.modules = inventory.modules; + # Example upstream module + upstream.clan.modules = { + uzzi = { + _class = "clan.service"; + manifest = { + name = "uzzi-from-upstream"; + }; + }; + }; + }; in clanLib.inventory.mapInstances { clanCoreModules = { }; flakeInputs = flakeInputsFixture; inherit inventory; - localModuleSet = inventory.modules; }; in {