2015-11-27 14:19:50 +01:00
|
|
|
{ pkgs, idris, overrides ? (self: super: {}) }: let
|
|
|
|
inherit (pkgs.lib) callPackageWith fix' extends;
|
|
|
|
|
|
|
|
idrisPackages = self: let
|
2017-07-13 05:58:54 +02:00
|
|
|
callPackage = callPackageWith (pkgs // pkgs.xorg // pkgs.gnome2 // self);
|
2015-11-27 15:35:59 +01:00
|
|
|
|
2015-11-27 15:55:22 +01:00
|
|
|
builtins_ = pkgs.lib.mapAttrs self.build-builtin-package {
|
2015-11-27 15:35:59 +01:00
|
|
|
prelude = [];
|
|
|
|
|
|
|
|
base = [ self.prelude ];
|
|
|
|
|
|
|
|
contrib = [ self.prelude self.base ];
|
|
|
|
|
|
|
|
effects = [ self.prelude self.base ];
|
|
|
|
|
|
|
|
pruviloj = [ self.prelude self.base ];
|
|
|
|
};
|
|
|
|
|
2015-11-27 15:57:49 +01:00
|
|
|
files = builtins.filter (n: n != "default") (pkgs.lib.mapAttrsToList (name: type: let
|
2017-09-14 00:03:39 +02:00
|
|
|
m = builtins.match "(.*)\\.nix" name;
|
2015-11-27 15:57:49 +01:00
|
|
|
in if m == null then "default" else builtins.head m) (builtins.readDir ./.));
|
2015-11-27 19:17:17 +01:00
|
|
|
in (builtins.listToAttrs (map (name: {
|
|
|
|
inherit name;
|
|
|
|
|
|
|
|
value = callPackage (./. + "/${name}.nix") {};
|
|
|
|
}) files)) // {
|
2015-11-27 15:55:22 +01:00
|
|
|
inherit idris callPackage;
|
2015-11-27 15:35:59 +01:00
|
|
|
|
2015-11-27 19:17:17 +01:00
|
|
|
# A list of all of the libraries that come with idris
|
2015-11-27 15:55:22 +01:00
|
|
|
builtins = pkgs.lib.mapAttrsToList (name: value: value) builtins_;
|
|
|
|
} // builtins_;
|
2015-11-27 14:19:50 +01:00
|
|
|
in fix' (extends overrides idrisPackages)
|