From 5946ddc87a87995b7c90805011de8d0415527ff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9ana=20=E6=B1=9F?= Date: Sun, 4 Jan 2026 20:05:28 +0100 Subject: [PATCH] overlays/nix-monitored: fix chained override --- nix/overlays/nix-monitored.nix | 41 ++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/nix/overlays/nix-monitored.nix b/nix/overlays/nix-monitored.nix index 47d5ee9a..b8aa13c1 100644 --- a/nix/overlays/nix-monitored.nix +++ b/nix/overlays/nix-monitored.nix @@ -13,31 +13,38 @@ let withNotify = false; }; - keepNixOverride = + # * overrides the nix input as nix-monitored + # * any override changing the nix input will change that to nix-monitored + use-nix-monitored = drv: - drv - // { - override = args: drv.override (builtins.removeAttrs args [ "nix" ]); + let + drv' = drv.override { nix = nix-monitored; }; + in + drv' + // rec { + override = + args: + let + args' = + if args ? nix then + args + // { + nix = nix-monitored.override { inherit (args) nix; }; + } + else + args; + in + (drv'.override args') // { inherit override; }; }; inherit (prev) lib; in lib.optionalAttrs (prev ? nixos-rebuild) { - nixos-rebuild = keepNixOverride ( - prev.nixos-rebuild.override { - nix = nix-monitored; - } - ); + nixos-rebuild = use-nix-monitored prev.nixos-rebuild; } // lib.optionalAttrs (prev ? nixos-rebuild-ng) { - nixos-rebuild-ng = keepNixOverride ( - prev.nixos-rebuild-ng.override { - nix = nix-monitored; - } - ); + nixos-rebuild-ng = use-nix-monitored prev.nixos-rebuild-ng; } // { - nix-direnv = prev.nix-direnv.override { - nix = nix-monitored; - }; + nix-direnv = use-nix-monitored prev.nix-direnv; }