diff options
Diffstat (limited to 'flake/devshells.nix')
| -rw-r--r-- | flake/devshells.nix | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/flake/devshells.nix b/flake/devshells.nix new file mode 100644 index 0000000..d28c4b3 --- /dev/null +++ b/flake/devshells.nix @@ -0,0 +1,62 @@ +{ self, inputs, ... }: +{ + perSystem = + { system, pkgs, ... }: + let + treefmtEval = inputs.treefmt-nix.lib.evalModule pkgs { + projectRootFile = "flake.nix"; + programs = { + nixfmt.enable = true; + deadnix.enable = true; + }; + }; + + mkPreCommitHooks = + src: + inputs.pre-commit-hooks.lib.${system}.run { + inherit src; + hooks = { + check-merge-conflicts.enable = true; + deadnix.enable = true; + detect-private-keys.enable = true; + end-of-file-fixer.enable = true; + mixed-line-endings.enable = true; + shellcheck = { + enable = true; + excludes = [ "\\.envrc$" ]; + }; + flake-checker.enable = true; + treefmt = { + enable = true; + entry = "${treefmtEval.config.build.wrapper}/bin/treefmt --ci"; + }; + trim-trailing-whitespace.enable = true; + }; + }; + + pre-commit-check = mkPreCommitHooks ./.; + scripts = import "${self}/scripts" { + inherit + pkgs + self + system + inputs + ; + }; + in + { + devShells = { + default = pkgs.mkShellNoCC { + inherit (pre-commit-check) shellHook; + packages = + with pkgs; + [ + nixos-rebuild + git + inputs.agenix.packages."${system}".default + ] + ++ scripts.all; + }; + }; + }; +} |
