diff options
author | Shea Levy <shea@shealevy.com> | 2017-06-10 19:36:14 -0400 |
---|---|---|
committer | Shea Levy <shea@shealevy.com> | 2017-06-10 20:13:17 -0400 |
commit | 219bb1c80c33b02c739b3a7cd206543efad8fe92 (patch) | |
tree | 14150576dc2ba21518907d997fbf08cadcd57275 | |
parent | da690bdf2db6229c595fdbd482fa7987778dcfb0 (diff) | |
download | nixlib-219bb1c80c33b02c739b3a7cd206543efad8fe92.tar nixlib-219bb1c80c33b02c739b3a7cd206543efad8fe92.tar.gz nixlib-219bb1c80c33b02c739b3a7cd206543efad8fe92.tar.bz2 nixlib-219bb1c80c33b02c739b3a7cd206543efad8fe92.tar.lz nixlib-219bb1c80c33b02c739b3a7cd206543efad8fe92.tar.xz nixlib-219bb1c80c33b02c739b3a7cd206543efad8fe92.tar.zst nixlib-219bb1c80c33b02c739b3a7cd206543efad8fe92.zip |
Add packageSourceOverrides function to haskell package sets
-rw-r--r-- | pkgs/development/haskell-modules/make-package-set.nix | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/pkgs/development/haskell-modules/make-package-set.nix b/pkgs/development/haskell-modules/make-package-set.nix index e599b56545d9..52988dc4cbbe 100644 --- a/pkgs/development/haskell-modules/make-package-set.nix +++ b/pkgs/development/haskell-modules/make-package-set.nix @@ -116,6 +116,18 @@ in package-set { inherit pkgs stdenv callPackage; } self // { # Creates a Haskell package from a source package by calling cabal2nix on the source. callCabal2nix = name: src: self.callPackage (self.haskellSrc2nix { inherit src name; }); + # : Map Name (Either Path VersionNumber) -> HaskellPackageOverrideSet + # Given a set whose values are either paths or version strings, produces + # a package override set (i.e. (self: super: { etc. })) that sets + # the packages named in the input set to the corresponding versions + packageSourceOverrides = + overrides: self: super: pkgs.lib.mapAttrs (name: src: + let isPath = x: builtins.substring 0 1 (toString x) == "/"; + generateExprs = if isPath src + then self.callCabal2nix + else self.callHackage; + in generateExprs name src {}) overrides; + ghcWithPackages = selectFrom: withPackages (selectFrom self); ghcWithHoogle = selectFrom: |