summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
authorRobert Hensing <roberth@users.noreply.github.com>2018-07-10 11:30:11 +0200
committerGitHub <noreply@github.com>2018-07-10 11:30:11 +0200
commit873465eede7376d215f189e73f39a5c823da852a (patch)
tree30b240eed9e11deb4a46a8a27fa7b8a2992cfef1 /pkgs
parentc2af5149c80abd627fc963ddff612a6c157bf371 (diff)
parent05ca67107a42c3b5f545337823e3829f1dbb1deb (diff)
downloadnixlib-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')
-rw-r--r--pkgs/development/haskell-modules/lib.nix19
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);
 }