Skip to content

Commit

Permalink
haskellPackages.developPackage: Add a defaulted provideDrv argument
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
jwiegley committed May 18, 2018
1 parent 5e49920 commit d33322d
Showing 1 changed file with 14 additions and 5 deletions.
19 changes: 14 additions & 5 deletions pkgs/development/haskell-modules/make-package-set.nix
Expand Up @@ -176,18 +176,27 @@ 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
# source overrides as appropriate for the 'packageSourceOverrides'
# 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);

Expand Down

0 comments on commit d33322d

Please sign in to comment.