diff options
author | John Wiegley <johnw@newartisans.com> | 2018-05-15 22:02:00 -0700 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2018-05-18 13:04:18 -0700 |
commit | d33322d449502a5e200f876478ae44dcd049eedd (patch) | |
tree | 6971c44000a24edf9410e1cf956c5f0f6e37aabf /pkgs/development/haskell-modules/make-package-set.nix | |
parent | 5e49920d410b27e9430bfa97f94d40ba67d26666 (diff) |
haskellPackages.developPackage: Add a defaulted provideDrv argument
The purpose of this argument is to allow you to get at the derivation (rather than it's env) even when in the evaluation context of a nix-shell invocation.
Diffstat (limited to 'pkgs/development/haskell-modules/make-package-set.nix')
-rw-r--r-- | pkgs/development/haskell-modules/make-package-set.nix | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/pkgs/development/haskell-modules/make-package-set.nix b/pkgs/development/haskell-modules/make-package-set.nix index bde4f85f67846..bbc3d856ff2db 100644 --- a/pkgs/development/haskell-modules/make-package-set.nix +++ b/pkgs/development/haskell-modules/make-package-set.nix @@ -176,6 +176,7 @@ in package-set { inherit pkgs stdenv callPackage; } self // { # , source-overrides : Defaulted (Either Path VersionNumber) # , overrides : Defaulted (HaskellPackageOverrideSet) # , modifier : Defaulted + # , returnShellEnv : Defaulted # } -> NixShellAwareDerivation # Given a path to a haskell package directory whose cabal file is # named the same as the directory name, an optional set of @@ -183,11 +184,19 @@ in package-set { inherit pkgs stdenv callPackage; } self // { # function, an optional set of arbitrary overrides, and an optional # haskell package modifier, return a derivation appropriate # for nix-build or nix-shell to build that package. - developPackage = { root, source-overrides ? {}, overrides ? self: super: {}, modifier ? drv: drv }: - let name = builtins.baseNameOf root; - drv = - (extensible-self.extend (pkgs.lib.composeExtensions (self.packageSourceOverrides source-overrides) overrides)).callCabal2nix name root {}; - in if pkgs.lib.inNixShell then (modifier drv).env else modifier drv; + developPackage = + { root + , source-overrides ? {} + , overrides ? self: super: {} + , modifier ? drv: drv + , returnShellEnv ? pkgs.lib.inNixShell }: + let drv = + (extensible-self.extend + (pkgs.lib.composeExtensions + (self.packageSourceOverrides source-overrides) + overrides)) + .callCabal2nix (builtins.baseNameOf root) root {}; + in if returnShellEnv then (modifier drv).env else modifier drv; ghcWithPackages = selectFrom: withPackages (selectFrom self); |