summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSilvan Mosberger <infinisil@icloud.com>2019-09-05 00:06:22 +0200
committerSilvan Mosberger <infinisil@icloud.com>2019-09-05 00:54:03 +0200
commita75080f58ccdf7f702a1a0259e816be74143df52 (patch)
treec20639905d20e8dc3929b1addff9959dae9fe90d
parenta41af6a27b0b56b22b8200bb43e26714aa9e3ab7 (diff)
lib/makeOverridable: Deduplicate override definition
And call it overrideArgs in the let binding because that's what it does
-rw-r--r--lib/customisation.nix7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/customisation.nix b/lib/customisation.nix
index 1f5eb0d11e8b..cb02496b81d8 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";
}