nix-helpers: c2f6030df8dc750a7ea302d0b8e05cfdff2cd0e6

     1: { cabalPlan, cabalPlanToPackages, hackageIndex, haskellPackages }:
     2: with {
     3:   mkCabalPlan = cabalPlan;
     4:   oldHackageIndex = hackageIndex;
     5:   oldHaskellPackages = haskellPackages;
     6: };
     7: { name, src, cabalFile ? "${src}/${name}.cabal", doBench ? false, doCheck ? true
     8: , hackageIndex ? oldHackageIndex, haskellPackages ? oldHaskellPackages
     9: , cabalPlan ?
    10:   mkCabalPlan { inherit cabalFile doBench doCheck hackageIndex name; } }:
    11: with rec {
    12:   planPackages = cabalPlanToPackages { inherit cabalPlan haskellPackages; };
    13:   extendedPackages = planPackages.extend (self: super: {
    14:     "${name}" = self.callCabal2nix name src
    15:       # cabalPlanToPackages overrides mkDerivation to disable tests, to prevent
    16:       # circular dependencies. The original mkDerivation function is kept in an
    17:       # attribute: if it's present, use it (hence allowing this package's tests)
    18:       (if self.mkDerivation ? original then {
    19:         mkDerivation = self.mkDerivation.original;
    20:       } else
    21:         { });
    22:   });
    23: };
    24: extendedPackages."${name}" // {
    25:   inherit cabalPlan hackageIndex;
    26:   haskellPackages = extendedPackages;
    27: }

Generated by git2html.