diff options
author | Robert Hensing <roberth@users.noreply.github.com> | 2018-07-10 11:30:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-10 11:30:11 +0200 |
commit | 873465eede7376d215f189e73f39a5c823da852a (patch) | |
tree | 30b240eed9e11deb4a46a8a27fa7b8a2992cfef1 /pkgs/development/haskell-modules | |
parent | c2af5149c80abd627fc963ddff612a6c157bf371 (diff) | |
parent | 05ca67107a42c3b5f545337823e3829f1dbb1deb (diff) | |
download | nixlib-873465eede7376d215f189e73f39a5c823da852a.tar nixlib-873465eede7376d215f189e73f39a5c823da852a.tar.gz nixlib-873465eede7376d215f189e73f39a5c823da852a.tar.bz2 nixlib-873465eede7376d215f189e73f39a5c823da852a.tar.lz nixlib-873465eede7376d215f189e73f39a5c823da852a.tar.xz nixlib-873465eede7376d215f189e73f39a5c823da852a.tar.zst nixlib-873465eede7376d215f189e73f39a5c823da852a.zip |
Merge pull request #42923 from Gabriel439/gabriel/readDirectory
Add `pkgs.haskell.lib.packagesFromDirectory` utility
Diffstat (limited to 'pkgs/development/haskell-modules')
-rw-r--r-- | pkgs/development/haskell-modules/lib.nix | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/pkgs/development/haskell-modules/lib.nix b/pkgs/development/haskell-modules/lib.nix index fb1302f60ea5..c9dc7254800e 100644 --- a/pkgs/development/haskell-modules/lib.nix +++ b/pkgs/development/haskell-modules/lib.nix @@ -382,4 +382,23 @@ rec { allPkgconfigDepends; }; + # Utility to convert a directory full of `cabal2nix`-generated files into a + # package override set + # + # packagesFromDirectory : { directory : Directory, ... } -> HaskellPackageOverrideSet + packagesFromDirectory = + { directory, ... }: + + self: super: + let + haskellPaths = builtins.attrNames (builtins.readDir directory); + + toKeyVal = file: { + name = builtins.replaceStrings [ ".nix" ] [ "" ] file; + + value = self.callPackage (directory + "/${file}") { }; + }; + + in + builtins.listToAttrs (map toKeyVal haskellPaths); } |