Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / dhall-modules / lib.nix
blobc1993d0af02034bc04bbd0d6bf2b63a6342781a5
1 { lib }:
3 let
4   # This is essentially the same thing as `lib.makeOverridable`, except storing
5   # the override method in a method named `overridePackage` so that it's not
6   # shadowed by the `override` method added by `callPackage`
7   makePackageOverridable = f: args:
8     let
9       result = lib.makeOverridable f args;
11       copyArgs = g: lib.setFunctionArgs g (lib.functionArgs f);
13       overrideWith =
14         update: args // (if lib.isFunction update then update args else update);
16       overridePackage =
17         copyArgs (update: makePackageOverridable f (overrideWith update));
19     in
20       result // { inherit overridePackage; };
23   lib // {
24     inherit makePackageOverridable;
25   }