add pre-commit hooks
1 file changed, 24 insertions(+), 1 deletion(-)
changed files
M flake.nix → flake.nix
@@ -11,8 +11,9 @@ url = "github:tweag/gomod2nix"; inputs.nixpkgs.follows = "nixpkgs"; inputs.flake-utils.follows = "utils"; }; + inputs.pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; - outputs = { self, nixpkgs, utils, gomod2nix, ... }: + outputs = { self, nixpkgs, utils, gomod2nix, pre-commit-hooks, ... }: utils.lib.eachDefaultSystem (system: let@@ -37,6 +38,7 @@ packages = commonShellPackages; }; default = pkgs.mkShell { inputsFrom = [ packages.builder ]; + inherit (self.checks.${system}.pre-commit-check) shellHook; packages = with pkgs; [ gopls gotools@@ -54,6 +56,27 @@ hyperlink = pkgs.runCommandLocal "hyperlink" { } '' ${pkgs.hyperlink}/bin/hyperlink ${packages.website}/website/public touch $out ''; + pre-commit-check = pre-commit-hooks.lib.${system}.run { + src = ./.; + hooks = { + go-mod-tidy = { + enable = true; + name = "go-mod-tidy"; + description = "Run `go mod tidy`"; + types_or = [ "go" "go-mod" ]; + entry = "${pkgs.go}/bin/go mod tidy"; + pass_filenames = false; + }; + gomod2nix = { + enable = true; + name = "gomod2nix"; + description = "Import go.mod updates to nix"; + types_or = [ "go-sum" ]; + entry = "${pkgs.gomod2nix}/bin/gomod2nix"; + pass_filenames = false; + }; + }; + }; }; }); }