Setup Scala
This commit is contained in:
parent
8dec7591dd
commit
13a8e74189
37 changed files with 290 additions and 187 deletions
1
.envrc
Normal file
1
.envrc
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
use flake
|
||||||
10
.gitignore
vendored
10
.gitignore
vendored
|
|
@ -1,8 +1,4 @@
|
||||||
_build/
|
.bsp
|
||||||
_opam/
|
|
||||||
inputs/
|
|
||||||
.sl/
|
|
||||||
.git/
|
|
||||||
.DS_Store
|
|
||||||
.envrc
|
|
||||||
.direnv
|
.direnv
|
||||||
|
.metals
|
||||||
|
.scala-build
|
||||||
|
|
|
||||||
2
.scalafmt.conf
Normal file
2
.scalafmt.conf
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
version = "3.7.14"
|
||||||
|
runner.dialect = scala3
|
||||||
136
flake.lock
generated
136
flake.lock
generated
|
|
@ -1,21 +1,5 @@
|
||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"flake-compat": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1627913399,
|
|
||||||
"narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
|
|
@ -34,44 +18,13 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1638122382,
|
|
||||||
"narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "74f7e4319258e287b0f9cb95426c9853b282730b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"mirage-opam-overlays": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1661959605,
|
|
||||||
"narHash": "sha256-CPTuhYML3F4J58flfp3ZbMNhkRkVFKmBEYBZY5tnQwA=",
|
|
||||||
"owner": "dune-universe",
|
|
||||||
"repo": "mirage-opam-overlays",
|
|
||||||
"rev": "05f1c1823d891ce4d8adab91f5db3ac51d86dc0b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "dune-universe",
|
|
||||||
"repo": "mirage-opam-overlays",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1682362401,
|
"lastModified": 1701253981,
|
||||||
"narHash": "sha256-/UMUHtF2CyYNl4b60Z2y4wwTTdIWGKhj9H301EDcT9M=",
|
"narHash": "sha256-ztaDIyZ7HrTAfEEUt9AtTDNoCYxUdSd6NrRHaYOIxtk=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "884ac294018409e0d1adc0cae185439a44bd6b0b",
|
"rev": "e92039b55bcd58469325ded85d4f58dd5a4eaf58",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -81,91 +34,10 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"opam-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat",
|
|
||||||
"flake-utils": "flake-utils_2",
|
|
||||||
"mirage-opam-overlays": "mirage-opam-overlays",
|
|
||||||
"nixpkgs": "nixpkgs",
|
|
||||||
"opam-overlays": "opam-overlays",
|
|
||||||
"opam-repository": "opam-repository",
|
|
||||||
"opam2json": "opam2json"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1701258858,
|
|
||||||
"narHash": "sha256-5v5PFrIz2DdR5zRTez+J7prGUOHFHwM5RsmLspOGoms=",
|
|
||||||
"owner": "tweag",
|
|
||||||
"repo": "opam-nix",
|
|
||||||
"rev": "a547ed060d2409c20902bd5f8a2465adca1bdf4f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "tweag",
|
|
||||||
"repo": "opam-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"opam-overlays": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1654162756,
|
|
||||||
"narHash": "sha256-RV68fUK+O3zTx61iiHIoS0LvIk0E4voMp+0SwRg6G6c=",
|
|
||||||
"owner": "dune-universe",
|
|
||||||
"repo": "opam-overlays",
|
|
||||||
"rev": "c8f6ef0fc5272f254df4a971a47de7848cc1c8a4",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "dune-universe",
|
|
||||||
"repo": "opam-overlays",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"opam-repository": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1695894792,
|
|
||||||
"narHash": "sha256-7Llico807vq14AkqAaDIWogC50xLxU38nuNEH06YNPE=",
|
|
||||||
"owner": "ocaml",
|
|
||||||
"repo": "opam-repository",
|
|
||||||
"rev": "33fcf32f269ee5af70b31e27442397a0cdaf28b2",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "ocaml",
|
|
||||||
"repo": "opam-repository",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"opam2json": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"opam-nix",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1671540003,
|
|
||||||
"narHash": "sha256-5pXfbUfpVABtKbii6aaI2EdAZTjHJ2QntEf0QD2O5AM=",
|
|
||||||
"owner": "tweag",
|
|
||||||
"repo": "opam2json",
|
|
||||||
"rev": "819d291ea95e271b0e6027679de6abb4d4f7f680",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "tweag",
|
|
||||||
"repo": "opam2json",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
"flake-utils": "flake-utils",
|
||||||
"nixpkgs": [
|
"nixpkgs": "nixpkgs"
|
||||||
"opam-nix",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"opam-nix": "opam-nix"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
|
|
|
||||||
59
flake.nix
59
flake.nix
|
|
@ -1,57 +1,20 @@
|
||||||
{
|
{
|
||||||
inputs = {
|
inputs = {
|
||||||
opam-nix.url = "github:tweag/opam-nix";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
nixpkgs.follows = "opam-nix/nixpkgs";
|
|
||||||
};
|
};
|
||||||
outputs = { self, flake-utils, opam-nix, nixpkgs }@inputs:
|
|
||||||
flake-utils.lib.eachDefaultSystem (system:
|
outputs = { self, nixpkgs, flake-utils, ... }:
|
||||||
|
flake-utils.lib.eachDefaultSystem (
|
||||||
|
system:
|
||||||
let
|
let
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
on = opam-nix.lib.${system};
|
|
||||||
localPackagesQuery = builtins.mapAttrs (_: pkgs.lib.last)
|
in
|
||||||
(on.listRepo (on.makeOpamRepo ./.));
|
|
||||||
devPackagesQuery = {
|
|
||||||
# You can add "development" packages here. They will get added to the devShell automatically.
|
|
||||||
ocaml-lsp-server = "*";
|
|
||||||
ocamlformat = "*";
|
|
||||||
utop = "*";
|
|
||||||
dune-release = "*";
|
|
||||||
};
|
|
||||||
query = devPackagesQuery // {
|
|
||||||
## You can force versions of certain packages here, e.g:
|
|
||||||
## - force the ocaml compiler to be taken from opam-repository:
|
|
||||||
ocaml-base-compiler = "*";
|
|
||||||
## - or force the compiler to be taken from nixpkgs and be a certain version:
|
|
||||||
# ocaml-system = "4.14.0";
|
|
||||||
## - or force ocamlfind to be a certain version:
|
|
||||||
# ocamlfind = "1.9.2";
|
|
||||||
};
|
|
||||||
scope = on.buildDuneProject { } "tanenbaum" ./. query;
|
|
||||||
overlay = final: prev:
|
|
||||||
{
|
{
|
||||||
# You can add overrides here
|
devShell = pkgs.mkShell {
|
||||||
|
buildInputs = [ pkgs.scala-cli ];
|
||||||
};
|
};
|
||||||
scope' = scope.overrideScope' overlay;
|
}
|
||||||
# Packages from devPackagesQuery
|
);
|
||||||
devPackages = builtins.attrValues
|
|
||||||
(pkgs.lib.getAttrs (builtins.attrNames devPackagesQuery) scope');
|
|
||||||
# Packages in this workspace
|
|
||||||
packages =
|
|
||||||
pkgs.lib.getAttrs (builtins.attrNames localPackagesQuery) scope';
|
|
||||||
in {
|
|
||||||
legacyPackages = scope';
|
|
||||||
|
|
||||||
inherit packages;
|
|
||||||
|
|
||||||
## If you want to have a "default" package which will be built with just `nix build`, do this instead of `inherit packages;`:
|
|
||||||
# packages = packages // { default = packages.<your default package>; };
|
|
||||||
|
|
||||||
devShells.default = pkgs.mkShell {
|
|
||||||
inputsFrom = builtins.attrValues packages;
|
|
||||||
buildInputs = devPackages ++ [
|
|
||||||
# You can add packages from nixpkgs here
|
|
||||||
];
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
1
input/day01
Normal file
1
input/day01
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
OK
|
||||||
8
ocaml/.gitignore
vendored
Normal file
8
ocaml/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
_build/
|
||||||
|
_opam/
|
||||||
|
inputs/
|
||||||
|
.sl/
|
||||||
|
.git/
|
||||||
|
.DS_Store
|
||||||
|
.envrc
|
||||||
|
.direnv
|
||||||
189
ocaml/flake.lock
generated
Normal file
189
ocaml/flake.lock
generated
Normal file
|
|
@ -0,0 +1,189 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1627913399,
|
||||||
|
"narHash": "sha256-hY8g6H2KFL8ownSiFeMOjwPC8P0ueXpCVEbxgda3pko=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "12c64ca55c1014cdc1b16ed5a804aa8576601ff2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1694529238,
|
||||||
|
"narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1638122382,
|
||||||
|
"narHash": "sha256-sQzZzAbvKEqN9s0bzWuYmRaA03v40gaJ4+iL1LXjaeI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "74f7e4319258e287b0f9cb95426c9853b282730b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mirage-opam-overlays": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1661959605,
|
||||||
|
"narHash": "sha256-CPTuhYML3F4J58flfp3ZbMNhkRkVFKmBEYBZY5tnQwA=",
|
||||||
|
"owner": "dune-universe",
|
||||||
|
"repo": "mirage-opam-overlays",
|
||||||
|
"rev": "05f1c1823d891ce4d8adab91f5db3ac51d86dc0b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "dune-universe",
|
||||||
|
"repo": "mirage-opam-overlays",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1682362401,
|
||||||
|
"narHash": "sha256-/UMUHtF2CyYNl4b60Z2y4wwTTdIWGKhj9H301EDcT9M=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "884ac294018409e0d1adc0cae185439a44bd6b0b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"opam-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"mirage-opam-overlays": "mirage-opam-overlays",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"opam-overlays": "opam-overlays",
|
||||||
|
"opam-repository": "opam-repository",
|
||||||
|
"opam2json": "opam2json"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1701258858,
|
||||||
|
"narHash": "sha256-5v5PFrIz2DdR5zRTez+J7prGUOHFHwM5RsmLspOGoms=",
|
||||||
|
"owner": "tweag",
|
||||||
|
"repo": "opam-nix",
|
||||||
|
"rev": "a547ed060d2409c20902bd5f8a2465adca1bdf4f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tweag",
|
||||||
|
"repo": "opam-nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"opam-overlays": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1654162756,
|
||||||
|
"narHash": "sha256-RV68fUK+O3zTx61iiHIoS0LvIk0E4voMp+0SwRg6G6c=",
|
||||||
|
"owner": "dune-universe",
|
||||||
|
"repo": "opam-overlays",
|
||||||
|
"rev": "c8f6ef0fc5272f254df4a971a47de7848cc1c8a4",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "dune-universe",
|
||||||
|
"repo": "opam-overlays",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"opam-repository": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1695894792,
|
||||||
|
"narHash": "sha256-7Llico807vq14AkqAaDIWogC50xLxU38nuNEH06YNPE=",
|
||||||
|
"owner": "ocaml",
|
||||||
|
"repo": "opam-repository",
|
||||||
|
"rev": "33fcf32f269ee5af70b31e27442397a0cdaf28b2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "ocaml",
|
||||||
|
"repo": "opam-repository",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"opam2json": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"opam-nix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1671540003,
|
||||||
|
"narHash": "sha256-5pXfbUfpVABtKbii6aaI2EdAZTjHJ2QntEf0QD2O5AM=",
|
||||||
|
"owner": "tweag",
|
||||||
|
"repo": "opam2json",
|
||||||
|
"rev": "819d291ea95e271b0e6027679de6abb4d4f7f680",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "tweag",
|
||||||
|
"repo": "opam2json",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"nixpkgs": [
|
||||||
|
"opam-nix",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"opam-nix": "opam-nix"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
57
ocaml/flake.nix
Normal file
57
ocaml/flake.nix
Normal file
|
|
@ -0,0 +1,57 @@
|
||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
opam-nix.url = "github:tweag/opam-nix";
|
||||||
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
|
nixpkgs.follows = "opam-nix/nixpkgs";
|
||||||
|
};
|
||||||
|
outputs = { self, flake-utils, opam-nix, nixpkgs }@inputs:
|
||||||
|
flake-utils.lib.eachDefaultSystem (system:
|
||||||
|
let
|
||||||
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
on = opam-nix.lib.${system};
|
||||||
|
localPackagesQuery = builtins.mapAttrs (_: pkgs.lib.last)
|
||||||
|
(on.listRepo (on.makeOpamRepo ./.));
|
||||||
|
devPackagesQuery = {
|
||||||
|
# You can add "development" packages here. They will get added to the devShell automatically.
|
||||||
|
ocaml-lsp-server = "*";
|
||||||
|
ocamlformat = "*";
|
||||||
|
utop = "*";
|
||||||
|
dune-release = "*";
|
||||||
|
};
|
||||||
|
query = devPackagesQuery // {
|
||||||
|
## You can force versions of certain packages here, e.g:
|
||||||
|
## - force the ocaml compiler to be taken from opam-repository:
|
||||||
|
ocaml-base-compiler = "*";
|
||||||
|
## - or force the compiler to be taken from nixpkgs and be a certain version:
|
||||||
|
# ocaml-system = "4.14.0";
|
||||||
|
## - or force ocamlfind to be a certain version:
|
||||||
|
# ocamlfind = "1.9.2";
|
||||||
|
};
|
||||||
|
scope = on.buildDuneProject { } "tanenbaum" ./. query;
|
||||||
|
overlay = final: prev:
|
||||||
|
{
|
||||||
|
# You can add overrides here
|
||||||
|
};
|
||||||
|
scope' = scope.overrideScope' overlay;
|
||||||
|
# Packages from devPackagesQuery
|
||||||
|
devPackages = builtins.attrValues
|
||||||
|
(pkgs.lib.getAttrs (builtins.attrNames devPackagesQuery) scope');
|
||||||
|
# Packages in this workspace
|
||||||
|
packages =
|
||||||
|
pkgs.lib.getAttrs (builtins.attrNames localPackagesQuery) scope';
|
||||||
|
in {
|
||||||
|
legacyPackages = scope';
|
||||||
|
|
||||||
|
inherit packages;
|
||||||
|
|
||||||
|
## If you want to have a "default" package which will be built with just `nix build`, do this instead of `inherit packages;`:
|
||||||
|
# packages = packages // { default = packages.<your default package>; };
|
||||||
|
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
inputsFrom = builtins.attrValues packages;
|
||||||
|
buildInputs = devPackages ++ [
|
||||||
|
# You can add packages from nixpkgs here
|
||||||
|
];
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
Before Width: | Height: | Size: 507 KiB After Width: | Height: | Size: 507 KiB |
2
project.scala
Normal file
2
project.scala
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
//> using scala 3.3.1
|
||||||
|
//> using option -Wunused:all
|
||||||
7
src/aoc.scala
Normal file
7
src/aoc.scala
Normal file
|
|
@ -0,0 +1,7 @@
|
||||||
|
package aoc
|
||||||
|
|
||||||
|
import scala.io.Source
|
||||||
|
import scala.util.Using
|
||||||
|
|
||||||
|
def loadInput(dayNumber: String) =
|
||||||
|
Using.resource(Source.fromFile(s"input/day$dayNumber"))(_.mkString)
|
||||||
5
src/day01.scala
Normal file
5
src/day01.scala
Normal file
|
|
@ -0,0 +1,5 @@
|
||||||
|
package aoc
|
||||||
|
package day01
|
||||||
|
|
||||||
|
@main def part1: Unit =
|
||||||
|
println(loadInput("01"))
|
||||||
Loading…
Add table
Add a link
Reference in a new issue