diff options
Diffstat (limited to 'infra/libkookie/nixpkgs/pkgs/development/dhall-modules/lib.nix')
-rw-r--r-- | infra/libkookie/nixpkgs/pkgs/development/dhall-modules/lib.nix | 25 |
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; + } |