idris2-tap/flake.nix

37 lines
1.1 KiB
Nix

{ description = "basic test framework for idris 2";
inputs = {
flake-utils.url = "github:numtide/flake-utils";
idris2-pkgs.url = "github:claymager/idris2-pkgs";
nixpkgs.follows = "idris2-pkgs/nixpkgs";
};
outputs = { self, nixpkgs, idris2-pkgs, flake-utils }:
let systems = with flake-utils.lib.system;
[ x86_64-darwin x86_64-linux i686-linux ];
in
flake-utils.lib.eachSystem systems (system:
let
pkgs = import nixpkgs {
inherit system;
overlays = [ idris2-pkgs.overlay ];
};
inherit (pkgs.idris2-pkgs._builders) idrisPackage devEnv;
packages = rec {
tap = idrisPackage ./. { };
tap-example = idrisPackage ./example { extraPkgs = packages; };
};
devShells =
let mkDevShell = _: pkg:
pkgs.mkShell { buildInputs = [ (devEnv pkg) ]; };
shells = packages // (with packages; { example = tap-example; });
in builtins.mapAttrs mkDevShell shells;
in {
inherit packages devShells;
defaultPackage = packages.tap;
devShell = devShells.tap;
}
);
}