Skip to content

Commit e6798d4

Browse files
committed
add flake for development on nixos, track lockfiles
1 parent 9da3cef commit e6798d4

5 files changed

Lines changed: 6748 additions & 0 deletions

File tree

.envrc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
if ! has nix_direnv_version || ! nix_direnv_version 2.2.1; then
2+
source_url "https://raw.githubusercontent.com/nix-community/nix-direnv/2.2.1/direnvrc" "sha256-zelF0vLbEl5uaqrfIzbgNzJWGmLzCmYAkInj/LNxvKs="
3+
fi
4+
5+
nix_direnv_watch_file flake.nix
6+
nix_direnv_watch_file flake.lock
7+
if ! use flake . --impure
8+
then
9+
echo "devenv could not be built. The devenv environment was not loaded. Make the necessary changes to devenv.nix and hit enter to try again." >&2
10+
fi

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ yarn.lock
77
.nyc_output
88
coverage
99
.yarn
10+
.devenv
11+
.direnv
1012

1113
# Created by https://www.toptal.com/developers/gitignore/api/node,obsidian,windows,macos,linux,yarn
1214
# Edit at https://www.toptal.com/developers/gitignore?templates=node,obsidian,windows,macos,linux,yarn

flake.lock

Lines changed: 272 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: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
inputs = {
3+
systems.url = "github:nix-systems/default";
4+
devenv.url = "github:cachix/devenv";
5+
};
6+
7+
outputs = { self, nixpkgs, devenv, systems, ... } @ inputs:
8+
let
9+
forEachSystem = nixpkgs.lib.genAttrs (import systems);
10+
in
11+
{
12+
packages = forEachSystem (system: {
13+
devenv-up = self.devShells.${system}.default.config.procfileScript;
14+
});
15+
16+
devShells = forEachSystem
17+
(system:
18+
let
19+
pkgs = nixpkgs.legacyPackages.${system};
20+
in
21+
{
22+
default = devenv.lib.mkShell {
23+
inherit inputs pkgs;
24+
modules = [
25+
{
26+
languages.javascript = {
27+
enable = true;
28+
pnpm.enable = true;
29+
};
30+
languages.typescript.enable = true;
31+
}
32+
];
33+
};
34+
});
35+
};
36+
}

0 commit comments

Comments
 (0)