summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFederico Igne <undyamon@disroot.org>2023-12-30 17:53:33 +0100
committerFederico Igne <undyamon@disroot.org>2023-12-30 17:53:33 +0100
commiteda08bdd6fd3b2e441b5e9f1ad6cca45734d77cd (patch)
tree21cef7512b73dcf6f7eb48a40b2c6fd9c9995245
parent66532348e08af6a0cc385ddab67bd9803ba64c46 (diff)
downloadsandy-eda08bdd6fd3b2e441b5e9f1ad6cca45734d77cd.tar.gz
sandy-eda08bdd6fd3b2e441b5e9f1ad6cca45734d77cd.zip
feat: add development flake
-rw-r--r--flake.lock189
-rw-r--r--flake.nix54
2 files changed, 243 insertions, 0 deletions
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..cdff25c
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,189 @@
1{
2 "nodes": {
3 "flake-compat": {
4 "flake": false,
5 "locked": {
6 "lastModified": 1627913399,
7 "narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=",
8 "owner": "edolstra",
9 "repo": "flake-compat",
10 "rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2",
11 "type": "github"
12 },
13 "original": {
14 "owner": "edolstra",
15 "repo": "flake-compat",
16 "type": "github"
17 }
18 },
19 "flake-utils": {
20 "inputs": {
21 "systems": "systems"
22 },
23 "locked": {
24 "lastModified": 1701680307,
25 "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
26 "owner": "numtide",
27 "repo": "flake-utils",
28 "rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
29 "type": "github"
30 },
31 "original": {
32 "owner": "numtide",
33 "repo": "flake-utils",
34 "type": "github"
35 }
36 },
37 "flake-utils_2": {
38 "locked": {
39 "lastModified": 1638122382,
40 "narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
41 "owner": "numtide",
42 "repo": "flake-utils",
43 "rev": "74f7e4319258e287b0f9cb95426c9853b282730b",
44 "type": "github"
45 },
46 "original": {
47 "owner": "numtide",
48 "repo": "flake-utils",
49 "type": "github"
50 }
51 },
52 "mirage-opam-overlays": {
53 "flake": false,
54 "locked": {
55 "lastModified": 1661959605,
56 "narHash": "sha256-CPTuhYML3F4J58flfp3ZbMNhkRkVFKmBEYBZY5tnQwA=",
57 "owner": "dune-universe",
58 "repo": "mirage-opam-overlays",
59 "rev": "05f1c1823d891ce4d8adab91f5db3ac51d86dc0b",
60 "type": "github"
61 },
62 "original": {
63 "owner": "dune-universe",
64 "repo": "mirage-opam-overlays",
65 "type": "github"
66 }
67 },
68 "nixpkgs": {
69 "locked": {
70 "lastModified": 1682362401,
71 "narHash": "sha256-/UMUHtF2CyYNl4b60Z2y4wwTTdIWGKhj9H301EDcT9M=",
72 "owner": "nixos",
73 "repo": "nixpkgs",
74 "rev": "884ac294018409e0d1adc0cae185439a44bd6b0b",
75 "type": "github"
76 },
77 "original": {
78 "owner": "nixos",
79 "ref": "nixos-unstable",
80 "repo": "nixpkgs",
81 "type": "github"
82 }
83 },
84 "opam-nix": {
85 "inputs": {
86 "flake-compat": "flake-compat",
87 "flake-utils": "flake-utils_2",
88 "mirage-opam-overlays": "mirage-opam-overlays",
89 "nixpkgs": "nixpkgs",
90 "opam-overlays": "opam-overlays",
91 "opam-repository": "opam-repository",
92 "opam2json": "opam2json"
93 },
94 "locked": {
95 "lastModified": 1701855685,
96 "narHash": "sha256-38RprSyq38aGCsniQQaoYYmITzbgq2wssDQtVqnHfWE=",
97 "owner": "tweag",
98 "repo": "opam-nix",
99 "rev": "73b179d9a5e4b9849e7b857eef9ad2a065e489be",
100 "type": "github"
101 },
102 "original": {
103 "owner": "tweag",
104 "repo": "opam-nix",
105 "type": "github"
106 }
107 },
108 "opam-overlays": {
109 "flake": false,
110 "locked": {
111 "lastModified": 1654162756,
112 "narHash": "sha256-RV68fUK+O3zTx61iiHIoS0LvIk0E4voMp+0SwRg6G6c=",
113 "owner": "dune-universe",
114 "repo": "opam-overlays",
115 "rev": "c8f6ef0fc5272f254df4a971a47de7848cc1c8a4",
116 "type": "github"
117 },
118 "original": {
119 "owner": "dune-universe",
120 "repo": "opam-overlays",
121 "type": "github"
122 }
123 },
124 "opam-repository": {
125 "flake": false,
126 "locked": {
127 "lastModified": 1701363371,
128 "narHash": "sha256-DeiPIuWNDSOxvlF41YPae7UpVGZLf7/E3qp2JMerovg=",
129 "owner": "ocaml",
130 "repo": "opam-repository",
131 "rev": "bc52affc41b55ff00c0d3ac9a376538d79695aaf",
132 "type": "github"
133 },
134 "original": {
135 "owner": "ocaml",
136 "repo": "opam-repository",
137 "type": "github"
138 }
139 },
140 "opam2json": {
141 "inputs": {
142 "nixpkgs": [
143 "opam-nix",
144 "nixpkgs"
145 ]
146 },
147 "locked": {
148 "lastModified": 1671540003,
149 "narHash": "sha256-5pXfbUfpVABtKbii6aaI2EdAZTjHJ2QntEf0QD2O5AM=",
150 "owner": "tweag",
151 "repo": "opam2json",
152 "rev": "819d291ea95e271b0e6027679de6abb4d4f7f680",
153 "type": "github"
154 },
155 "original": {
156 "owner": "tweag",
157 "repo": "opam2json",
158 "type": "github"
159 }
160 },
161 "root": {
162 "inputs": {
163 "flake-utils": "flake-utils",
164 "nixpkgs": [
165 "opam-nix",
166 "nixpkgs"
167 ],
168 "opam-nix": "opam-nix"
169 }
170 },
171 "systems": {
172 "locked": {
173 "lastModified": 1681028828,
174 "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
175 "owner": "nix-systems",
176 "repo": "default",
177 "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
178 "type": "github"
179 },
180 "original": {
181 "owner": "nix-systems",
182 "repo": "default",
183 "type": "github"
184 }
185 }
186 },
187 "root": "root",
188 "version": 7
189}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..bcd9ed1
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,54 @@
1{
2 inputs = {
3 opam-nix.url = "github:tweag/opam-nix";
4 flake-utils.url = "github:numtide/flake-utils";
5 nixpkgs.follows = "opam-nix/nixpkgs";
6 };
7 outputs = { self, nixpkgs, flake-utils, opam-nix, ... }:
8 flake-utils.lib.eachDefaultSystem (system:
9 let
10 pkgs = import nixpkgs { inherit system; };
11
12 package = "sand";
13 on = opam-nix.lib.${system};
14 localPackagesQuery = builtins.mapAttrs (_: pkgs.lib.last)
15 (on.listRepo (on.makeOpamRepo ./.));
16 devPackagesQuery = {
17 ocaml-lsp-server = "*";
18 ocamlformat = "*";
19 utop = "*";
20 };
21 query = devPackagesQuery // {
22 ocaml-base-compiler = "*";
23 };
24 scope = on.buildDuneProject { } package ./. query;
25 overlay = final: prev:
26 {
27 # You can add overrides here
28 };
29 scope' = scope.overrideScope' overlay;
30 # Packages from devPackagesQuery
31 devPackages = builtins.attrValues
32 (pkgs.lib.getAttrs (builtins.attrNames devPackagesQuery) scope');
33 # Packages in this workspace
34 packages =
35 pkgs.lib.getAttrs (builtins.attrNames localPackagesQuery) scope';
36 in {
37 legacyPackages = scope';
38
39 inherit packages;
40
41 devShells.default = pkgs.mkShell {
42
43 inputsFrom = builtins.attrValues packages;
44
45 buildInputs = devPackages ++ [
46 # You can add packages from nixpkgs here
47 ];
48
49 shellHook = ''
50 echo "version = `ocamlformat --version`" > .ocamlformat
51 '';
52 };
53 });
54}