aboutsummaryrefslogtreecommitdiff
path: root/nix/flake/devshells.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nix/flake/devshells.nix')
-rw-r--r--nix/flake/devshells.nix57
1 files changed, 57 insertions, 0 deletions
diff --git a/nix/flake/devshells.nix b/nix/flake/devshells.nix
new file mode 100644
index 0000000..339a8f4
--- /dev/null
+++ b/nix/flake/devshells.nix
@@ -0,0 +1,57 @@
+{ 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 ../../nix/scripts {
+ inherit pkgs 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;
+ };
+ };
+ };
+}