diff options
author | Joe Kachmar <me@jkachmar.com> | 2021-01-11 17:47:24 -0500 |
---|---|---|
committer | Joe Kachmar <joseph.kachmar@well.co> | 2021-01-11 18:00:21 -0500 |
commit | 335f1fb25f2f784e496dc4e5560cea7e3414a7a8 (patch) | |
tree | c4e3f37bfc3316e745301f2179832204815e14c2 /pkgs/development/haskell-modules/make-package-set.nix | |
parent | c7d8d75e8e53d66afce113947f42f3d64e4ab871 (diff) | |
download | nixlib-335f1fb25f2f784e496dc4e5560cea7e3414a7a8.tar nixlib-335f1fb25f2f784e496dc4e5560cea7e3414a7a8.tar.gz nixlib-335f1fb25f2f784e496dc4e5560cea7e3414a7a8.tar.bz2 nixlib-335f1fb25f2f784e496dc4e5560cea7e3414a7a8.tar.lz nixlib-335f1fb25f2f784e496dc4e5560cea7e3414a7a8.tar.xz nixlib-335f1fb25f2f784e496dc4e5560cea7e3414a7a8.tar.zst nixlib-335f1fb25f2f784e496dc4e5560cea7e3414a7a8.zip |
Adds Haskell generic builder argument modifier
This is a new argument to the Haskell builder's 'shellFor' which allows the caller to adjust the 'genericBuilderArgs' after they are built. One immediate application for this is that it allows users to disable tests, enable benchmarks, etc. for _all_ packages in a given Haskell package set. This is often useful when so many of the derivations in the package set have changed that most of the cache has been invalidated, and there is no need for the user to run tests on their dependencies, but they still want these dependencies available in their 'nix-shell' environment for some package-under-development.
Diffstat (limited to 'pkgs/development/haskell-modules/make-package-set.nix')
-rw-r--r-- | pkgs/development/haskell-modules/make-package-set.nix | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/pkgs/development/haskell-modules/make-package-set.nix b/pkgs/development/haskell-modules/make-package-set.nix index 4ae3f0b2427f..c6b9f1021bca 100644 --- a/pkgs/development/haskell-modules/make-package-set.nix +++ b/pkgs/development/haskell-modules/make-package-set.nix @@ -323,6 +323,7 @@ in package-set { inherit pkgs stdenv callPackage; } self // { # packages. You should set this to true if you have benchmarks defined # in your local packages that you want to be able to run with cabal benchmark doBenchmark ? false + , genericBuilderArgsModifier ? (args: args) , ... } @ args: let @@ -439,7 +440,7 @@ in package-set { inherit pkgs stdenv callPackage; } self // { # This is a derivation created with `haskellPackages.mkDerivation`. # # pkgWithCombinedDeps :: HaskellDerivation - pkgWithCombinedDeps = self.mkDerivation genericBuilderArgs; + pkgWithCombinedDeps = self.mkDerivation (genericBuilderArgsModifier genericBuilderArgs); # The derivation returned from `envFunc` for `pkgWithCombinedDeps`. # @@ -453,7 +454,7 @@ in package-set { inherit pkgs stdenv callPackage; } self // { # pkgWithCombinedDepsDevDrv :: Derivation pkgWithCombinedDepsDevDrv = pkgWithCombinedDeps.envFunc { inherit withHoogle; }; - mkDerivationArgs = builtins.removeAttrs args [ "packages" "withHoogle" "doBenchmark" ]; + mkDerivationArgs = builtins.removeAttrs args [ "genericBuilderArgsModifier" "packages" "withHoogle" "doBenchmark" ]; in pkgWithCombinedDepsDevDrv.overrideAttrs (old: mkDerivationArgs // { nativeBuildInputs = old.nativeBuildInputs ++ mkDerivationArgs.nativeBuildInputs or []; |