From d785169fbf89f2978d5bec40c7287b8931620115 Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Tue, 1 Jul 2025 13:39:53 +0200 Subject: [PATCH] lib.clan: properly merge self attrs --- clanServices/zerotier/tests/eval-tests.nix | 7 ++++--- lib/modules/clan/interface.nix | 12 +++++++++++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/clanServices/zerotier/tests/eval-tests.nix b/clanServices/zerotier/tests/eval-tests.nix index ad1033ec8..0feddfe0b 100644 --- a/clanServices/zerotier/tests/eval-tests.nix +++ b/clanServices/zerotier/tests/eval-tests.nix @@ -4,9 +4,10 @@ ... }: let - testFlake = (clanLib.clan { - self = { }; - directory = ./vm; + testFlake = + (clanLib.clan { + self = { }; + directory = ./vm; machines.jon = { nixpkgs.hostPlatform = "x86_64-linux"; diff --git a/lib/modules/clan/interface.nix b/lib/modules/clan/interface.nix index ad5e3c5f9..02cbc7eb4 100644 --- a/lib/modules/clan/interface.nix +++ b/lib/modules/clan/interface.nix @@ -26,7 +26,17 @@ in This is used to import external clan modules. ''; # Workaround for lib.clan - apply = v: if lib.isAttrs v then v // { inputs.self.clan = config; } else v; + apply = + s: + if lib.isAttrs s then + s + // { + inputs = (s.inputs or { }) // { + self.clan = config; + }; + } + else + s; }; directory = lib.mkOption {