From 4ee556cfe9528a321f4a3746ca83f97feacf500e Mon Sep 17 00:00:00 2001 From: Shea Levy Date: Fri, 9 Jan 2015 13:24:58 -0500 Subject: mkOverridable: Use functors to allow overridable functions --- lib/customisation.nix | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib/customisation.nix') diff --git a/lib/customisation.nix b/lib/customisation.nix index 04a5cb4203358..f16043cf9a3e3 100644 --- a/lib/customisation.nix +++ b/lib/customisation.nix @@ -65,6 +65,13 @@ rec { overrideDerivation = fdrv: makeOverridable (args: overrideDerivation (f args) fdrv) origArgs; }) + else if builtins.isFunction ff then + { override = newArgs: + makeOverridable f (origArgs // (if builtins.isFunction newArgs then newArgs origArgs else newArgs)); + __functor = self: ff; + deepOverride = throw "deepOverride not yet supported for functors"; + overrideDerivation = throw "overrideDerivation not yet supported for functors"; + } else ff; deepOverrider = newArgs: name: x: if builtins.isAttrs x then ( -- cgit 1.4.1