summaryrefslogtreecommitdiffstats
path: root/pkgs/haskell/default.nix
blob: 7baaa896d49104300c2a8a1a399b5bcdba6077e4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
let
  overrides = { lib, mylib }: self: super:
    mylib.mapNixDir (path: self.callPackage path {}) [
      ./.
    ] // {
      xmonad-tv = self.callPackage ./xmonad-tv {
        pager = self.desktop-pager;
      };
    };
in
  self: super: let
    inherit (super) lib;
    mylib = import ../../lib/pure.nix {
      inherit lib;
    };
  in {
    haskell = super.haskell // {
      packages = lib.mapAttrs (name: value:
        if builtins.hasAttr "override" value
          then value.override (old: {
            overrides =
              lib.composeExtensions (old.overrides or (_: _: { })) (overrides { inherit lib mylib; });
          })
          else value
      ) super.haskell.packages;
    };
    haskellPackages = super.haskellPackages.override (old: {
      overrides =
        lib.composeExtensions (old.overrides or (_: _: { })) (overrides { inherit lib mylib; });
    });
  }