Add packageSourceOverrides function to haskell package sets

+12
+12
pkgs/development/haskell-modules/make-package-set.nix
··· 116 116 # Creates a Haskell package from a source package by calling cabal2nix on the source. 117 117 callCabal2nix = name: src: self.callPackage (self.haskellSrc2nix { inherit src name; }); 118 118 119 + # : Map Name (Either Path VersionNumber) -> HaskellPackageOverrideSet 120 + # Given a set whose values are either paths or version strings, produces 121 + # a package override set (i.e. (self: super: { etc. })) that sets 122 + # the packages named in the input set to the corresponding versions 123 + packageSourceOverrides = 124 + overrides: self: super: pkgs.lib.mapAttrs (name: src: 125 + let isPath = x: builtins.substring 0 1 (toString x) == "/"; 126 + generateExprs = if isPath src 127 + then self.callCabal2nix 128 + else self.callHackage; 129 + in generateExprs name src {}) overrides; 130 + 119 131 ghcWithPackages = selectFrom: withPackages (selectFrom self); 120 132 121 133 ghcWithHoogle = selectFrom: