···161 # : { root : Path
162 # , source-overrides : Defaulted (Either Path VersionNumber)
163 # , overrides : Defaulted (HaskellPackageOverrideSet)
0164 # } -> NixShellAwareDerivation
165 # Given a path to a haskell package directory whose cabal file is
166 # named the same as the directory name, an optional set of
167 # source overrides as appropriate for the 'packageSourceOverrides'
168- # function, and an optional set of arbitrary overrides,
169- # return a derivation appropriate for nix-build or nix-shell
170- # to build that package.
171- developPackage = { root, source-overrides ? {}, overrides ? self: super: {} }:
172 let name = builtins.baseNameOf root;
173 drv =
174 (extensible-self.extend (pkgs.lib.composeExtensions (self.packageSourceOverrides source-overrides) overrides)).callCabal2nix name root {};
175- in if pkgs.lib.inNixShell then drv.env else drv;
176177 ghcWithPackages = selectFrom: withPackages (selectFrom self);
178
···161 # : { root : Path
162 # , source-overrides : Defaulted (Either Path VersionNumber)
163 # , overrides : Defaulted (HaskellPackageOverrideSet)
164+ # , modifier : Defaulted
165 # } -> NixShellAwareDerivation
166 # Given a path to a haskell package directory whose cabal file is
167 # named the same as the directory name, an optional set of
168 # source overrides as appropriate for the 'packageSourceOverrides'
169+ # function, an optional set of arbitrary overrides, and an optional
170+ # haskell package modifier, return a derivation appropriate
171+ # for nix-build or nix-shell to build that package.
172+ developPackage = { root, source-overrides ? {}, overrides ? self: super: {}, modifier ? drv: drv }:
173 let name = builtins.baseNameOf root;
174 drv =
175 (extensible-self.extend (pkgs.lib.composeExtensions (self.packageSourceOverrides source-overrides) overrides)).callCabal2nix name root {};
176+ in if pkgs.lib.inNixShell then (modifier drv).env else modifier drv;
177178 ghcWithPackages = selectFrom: withPackages (selectFrom self);
179