aboutsummaryrefslogtreecommitdiff
path: root/infra/libkookie/nixpkgs/pkgs/development/dhall-modules/lib.nix
diff options
context:
space:
mode:
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/dhall-modules/lib.nix')
-rw-r--r--infra/libkookie/nixpkgs/pkgs/development/dhall-modules/lib.nix25
1 files changed, 25 insertions, 0 deletions
diff --git a/infra/libkookie/nixpkgs/pkgs/development/dhall-modules/lib.nix b/infra/libkookie/nixpkgs/pkgs/development/dhall-modules/lib.nix
new file mode 100644
index 000000000000..c1993d0af020
--- /dev/null
+++ b/infra/libkookie/nixpkgs/pkgs/development/dhall-modules/lib.nix
@@ -0,0 +1,25 @@
+{ lib }:
+
+let
+ # This is essentially the same thing as `lib.makeOverridable`, except storing
+ # the override method in a method named `overridePackage` so that it's not
+ # shadowed by the `override` method added by `callPackage`
+ makePackageOverridable = f: args:
+ let
+ result = lib.makeOverridable f args;
+
+ copyArgs = g: lib.setFunctionArgs g (lib.functionArgs f);
+
+ overrideWith =
+ update: args // (if lib.isFunction update then update args else update);
+
+ overridePackage =
+ copyArgs (update: makePackageOverridable f (overrideWith update));
+
+ in
+ result // { inherit overridePackage; };
+
+in
+ lib // {
+ inherit makePackageOverridable;
+ }