From a75080f58ccdf7f702a1a0259e816be74143df52 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Thu, 5 Sep 2019 00:06:22 +0200 Subject: lib/makeOverridable: Deduplicate override definition And call it overrideArgs in the let binding because that's what it does --- lib/customisation.nix | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'lib/customisation.nix') diff --git a/lib/customisation.nix b/lib/customisation.nix index 1f5eb0d11e8bf..cb02496b81d8f 100644 --- a/lib/customisation.nix +++ b/lib/customisation.nix @@ -68,16 +68,19 @@ rec { let ff = f origArgs; overrideWith = newArgs: origArgs // (if lib.isFunction newArgs then newArgs origArgs else newArgs); + + # Re-call the function but with different arguments + overrideArgs = newArgs: makeOverridable f (overrideWith newArgs); in if builtins.isAttrs ff then (ff // { - override = newArgs: makeOverridable f (overrideWith newArgs); + override = overrideArgs; overrideDerivation = fdrv: makeOverridable (args: overrideDerivation (f args) fdrv) origArgs; ${if ff ? overrideAttrs then "overrideAttrs" else null} = fdrv: makeOverridable (args: (f args).overrideAttrs fdrv) origArgs; }) else if lib.isFunction ff then { - override = newArgs: makeOverridable f (overrideWith newArgs); + override = overrideArgs; __functor = self: ff; overrideDerivation = throw "overrideDerivation not yet supported for functors"; } -- cgit 1.4.1