Skip to content

Commit 4ee556c

Browse files
committed
mkOverridable: Use functors to allow overridable functions
1 parent 96ae5d5 commit 4ee556c

2 files changed

Lines changed: 9 additions & 2 deletions

File tree

default.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
if ! builtins ? nixVersion || builtins.compareVersions "1.7" builtins.nixVersion == 1 then
1+
if ! builtins ? nixVersion || builtins.compareVersions "1.8" builtins.nixVersion == 1 then
22

3-
abort "This version of Nixpkgs requires Nix >= 1.7, please upgrade!"
3+
abort "This version of Nixpkgs requires Nix >= 1.8, please upgrade!"
44

55
else
66

lib/customisation.nix

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,13 @@ rec {
6565
overrideDerivation = fdrv:
6666
makeOverridable (args: overrideDerivation (f args) fdrv) origArgs;
6767
})
68+
else if builtins.isFunction ff then
69+
{ override = newArgs:
70+
makeOverridable f (origArgs // (if builtins.isFunction newArgs then newArgs origArgs else newArgs));
71+
__functor = self: ff;
72+
deepOverride = throw "deepOverride not yet supported for functors";
73+
overrideDerivation = throw "overrideDerivation not yet supported for functors";
74+
}
6875
else ff;
6976

7077
deepOverrider = newArgs: name: x: if builtins.isAttrs x then (

0 commit comments

Comments
 (0)