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.
This commit is contained in:
parent
c7d8d75e8e
commit
335f1fb25f
@ -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 [];
|
||||
|
Loading…
x
Reference in New Issue
Block a user