diff options
author | Vladimír Čunát <vcunat@gmail.com> | 2017-04-14 19:08:20 +0200 |
---|---|---|
committer | Vladimír Čunát <vcunat@gmail.com> | 2017-04-14 19:08:59 +0200 |
commit | 4aec96b379d3f1b89128297b0943253d6961cf94 (patch) | |
tree | bae26b8f66fa14c858f20ae409594e4abe7bc9b9 /lib/trivial.nix | |
parent | eb750f9a7b22620a9bafc1ff3c498e062b3bd5b2 (diff) | |
parent | 6617c8bd87e185ece1762c22ed4521adebd7c65b (diff) |
Merge the two "same" merges
This only takes the state from the second parent. The purpose is that when this commit depends on the failed one, simply merging this commit is a safe way to fix the problems. Details: https://github.com/NixOS/nixpkgs/commit/24444513fb5#commitcomment-21767916
Diffstat (limited to 'lib/trivial.nix')
-rw-r--r-- | lib/trivial.nix | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/lib/trivial.nix b/lib/trivial.nix index 40499b2b50928..acbd687dd98ff 100644 --- a/lib/trivial.nix +++ b/lib/trivial.nix @@ -80,6 +80,15 @@ rec { # argument, but it's nice this way if several uses of `extends` are cascaded. extends = f: rattrs: self: let super = rattrs self; in super // f self super; + # Compose two extending functions of the type expected by 'extends' + # into one where changes made in the first are available in the + # 'super' of the second + composeExtensions = + f: g: self: super: + let fApplied = f self super; + super' = super // fApplied; + in fApplied // g self super'; + # Create an overridable, recursive attribute set. For example: # # nix-repl> obj = makeExtensible (self: { }) |