summary refs log tree commit diff
path: root/pkgs/development/idris-modules/default.nix
blob: 9d2ebda00c4ef37650704a4d6bbe79a12a49e7be (plain) (blame)
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
32
{ pkgs, idris, overrides ? (self: super: {}) }: let
  inherit (pkgs.lib) callPackageWith fix' extends;

  idrisPackages = self: let
    callPackage = callPackageWith (pkgs // pkgs.xorg // pkgs.gnome2 // self);

    builtins_ = pkgs.lib.mapAttrs self.build-builtin-package {
      prelude = [];

      base = [ self.prelude ];

      contrib = [ self.prelude self.base ];

      effects = [ self.prelude self.base ];

      pruviloj = [ self.prelude self.base ];
    };

    files = builtins.filter (n: n != "default") (pkgs.lib.mapAttrsToList (name: type: let
      m = builtins.match "(.*)\.nix" name;
    in if m == null then "default" else builtins.head m) (builtins.readDir ./.));
  in (builtins.listToAttrs (map (name: {
    inherit name;

    value = callPackage (./. + "/${name}.nix") {};
  }) files)) // {
    inherit idris callPackage;

    # A list of all of the libraries that come with idris
    builtins = pkgs.lib.mapAttrsToList (name: value: value) builtins_;
  } // builtins_;
in fix' (extends overrides idrisPackages)