From 5a8b6bc354d43cdec20da60e1630b0f828b6c4e2 Mon Sep 17 00:00:00 2001 From: Jordan Holt Date: Sun, 19 Jan 2025 11:33:18 +0000 Subject: [PATCH] Add pre-commit check and devShell --- flake.nix | 45 ++++++++++++++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 11 deletions(-) diff --git a/flake.nix b/flake.nix index 2229efe..c116207 100644 --- a/flake.nix +++ b/flake.nix @@ -61,7 +61,6 @@ inherit (nixpkgs) lib; domain = "mesh.vimium.net"; - forEverySystem = lib.getAttrs lib.systems.flakeExposed; forEachSystem = lib.genAttrs [ "x86_64-linux" "aarch64-linux" @@ -114,14 +113,42 @@ )) ]; + checks = + builtins.mapAttrs (system: deployLib: deployLib.deployChecks self.deploy) inputs.deploy-rs.lib + // (forEachSystem (system: { + pre-commit-check = inputs.pre-commit-hooks.lib.${system}.run { + src = ./.; + hooks = { + check-case-conflicts.enable = true; + check-executables-have-shebangs.enable = true; + check-merge-conflicts.enable = true; + deadnix = { + enable = true; + settings = { + noLambdaArg = true; + }; + }; + detect-private-keys.enable = true; + end-of-file-fixer.enable = true; + fix-byte-order-marker.enable = true; + mixed-line-endings.enable = true; + nixfmt-rfc-style.enable = true; + trim-trailing-whitespace.enable = true; + }; + }; + })); + formatter = forEachSystem (system: nixpkgs.legacyPackages.${system}.nixfmt-rfc-style); - devShells.x86_64-linux.default = nixpkgs.legacyPackages.x86_64-linux.mkShell { - buildInputs = [ - inputs.agenix.packages.x86_64-linux.agenix - inputs.deploy-rs.packages.x86_64-linux.deploy-rs - ]; - }; + devShells = forEachSystem (system: { + default = nixpkgs.legacyPackages.${system}.mkShell { + inherit (self.checks.${system}.pre-commit-check) shellHook; + buildInputs = [ + inputs.agenix.packages.${system}.agenix + inputs.deploy-rs.packages.${system}.deploy-rs + ] ++ self.checks.${system}.pre-commit-check.enabledPackages; + }; + }); deploy = { magicRollback = true; @@ -134,9 +161,5 @@ "vps1" ] mkDeployNode; }; - - checks = builtins.mapAttrs ( - system: deployLib: deployLib.deployChecks self.deploy - ) inputs.deploy-rs.lib; }; }