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.
This commit is contained in:
parent
5e49920d41
commit
d33322d449
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in a new issue