summary refs log tree commit diff
path: root/pkgs/stdenv/generic
diff options
context:
space:
mode:
authorArtturin <Artturin@artturin.com>2023-06-21 17:30:32 +0300
committerArtturin <Artturin@artturin.com>2023-06-30 23:28:00 +0300
commit0fdae315315686d180d924a7c33066fbc5b4c14d (patch)
treec2d1f96710e183a3aa35e7a22bf8461196b51a72 /pkgs/stdenv/generic
parent3cd360a2de66c1f17099b2edffdf1842c1266abd (diff)
downloadnixpkgs-0fdae315315686d180d924a7c33066fbc5b4c14d.tar
nixpkgs-0fdae315315686d180d924a7c33066fbc5b4c14d.tar.gz
nixpkgs-0fdae315315686d180d924a7c33066fbc5b4c14d.tar.bz2
nixpkgs-0fdae315315686d180d924a7c33066fbc5b4c14d.tar.lz
nixpkgs-0fdae315315686d180d924a7c33066fbc5b4c14d.tar.xz
nixpkgs-0fdae315315686d180d924a7c33066fbc5b4c14d.tar.zst
nixpkgs-0fdae315315686d180d924a7c33066fbc5b4c14d.zip
stdenv: let overrideAttrs accept attrset OR function
Makes overrideAttrs usable in the same way that `override` can be used.
It allows the first argument of `overrideAttrs` to be either a function
or an attrset, instead of only a function:

hello.overrideAttrs (old: { postBuild = "echo hello"; })
hello.overrideAttrs { postBuild = "echo hello"; }

Previously only the first example was possible.

Co-authored-by: adisbladis <adisbladis@gmail.com>
Co-authored-by: matthewcroughan <matt@croughan.sh>
Diffstat (limited to 'pkgs/stdenv/generic')
-rw-r--r--pkgs/stdenv/generic/make-derivation.nix2
1 files changed, 1 insertions, 1 deletions
diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix
index 40ad357739b..d3593b6e809 100644
--- a/pkgs/stdenv/generic/make-derivation.nix
+++ b/pkgs/stdenv/generic/make-derivation.nix
@@ -41,7 +41,7 @@ let
               else x;
         in
           makeDerivationExtensible
-            (self: let super = rattrs self; in super // f self super);
+            (self: let super = rattrs self; in super // (if builtins.isFunction f0 || f0?__functor then f self super else f0));
 
       finalPackage =
         mkDerivationSimple overrideAttrs args;