Skip to content

Commit 80ee38b

Browse files
committed
Add nix dev shell
1 parent eb9bd9a commit 80ee38b

File tree

3 files changed

+120
-1
lines changed

3 files changed

+120
-1
lines changed

finite.cabal

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: finite
2-
version: 1.4.1.3
2+
version: 1.4.1.4
33
synopsis: Finite ranges via types
44
description: A framework for capturing finite ranges with
55
types, where the sizes of the ranges are not

flake.lock

Lines changed: 61 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

flake.nix

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
{
2+
description = "Nix flake for the finite package";
3+
4+
inputs = {
5+
flake-utils.url = "github:numtide/flake-utils";
6+
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
7+
};
8+
9+
outputs = { self, nixpkgs, flake-utils } :
10+
flake-utils.lib.eachDefaultSystem (system:
11+
let
12+
pkgs = nixpkgs.legacyPackages.${system};
13+
14+
ghcVersions = [ "ghc910" "ghc9121" ];
15+
defaultGhcVersion = "ghc9121";
16+
17+
makeOverlay = compilerVersion:
18+
let
19+
overrideFile = ./. + "/nix/override-${compilerVersion}.nix";
20+
21+
overrides =
22+
if builtins.pathExists overrideFile then
23+
import overrideFile { inherit pkgs; }
24+
else
25+
f: p: { };
26+
27+
hsOverlay =
28+
pkgs.haskell.packages.${compilerVersion}.override {
29+
inherit overrides;
30+
};
31+
32+
pkgSrcOverrides = pkgs.haskell.lib.compose.packageSourceOverrides {
33+
finite = ./.;
34+
};
35+
in
36+
hsOverlay.extend pkgSrcOverrides;
37+
38+
overlays = nixpkgs.lib.attrsets.genAttrs ghcVersions makeOverlay;
39+
40+
makeDevShell = compilerVersion:
41+
with overlays.${compilerVersion};
42+
shellFor {
43+
name = compilerVersion;
44+
packages = p: [
45+
# project packages
46+
p.finite
47+
];
48+
nativeBuildInputs = [
49+
# Haskell dependencies
50+
# cabal-install
51+
];
52+
};
53+
54+
shells = pkgs.lib.attrsets.genAttrs ghcVersions makeDevShell;
55+
in {
56+
devShells = shells // { default = shells.${defaultGhcVersion}; };
57+
});
58+
}

0 commit comments

Comments
 (0)