From 4500d71f1dc72d4d3315ac8f90ae2f0ae22c7a5b Mon Sep 17 00:00:00 2001 From: Franck Cuny Date: Mon, 27 Jun 2022 18:31:30 -0700 Subject: feat(flake): add pre-commit hooks And configure them to run nixpkgs-fmt and shellcheck. Change-Id: I0aa2025e368b80c5e7d90a4dc05448494525e31e Reviewed-on: https://cl.fcuny.net/c/world/+/590 Reviewed-by: Franck Cuny Tested-by: CI --- flake.nix | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix index c043444..e36b4ed 100644 --- a/flake.nix +++ b/flake.nix @@ -24,6 +24,17 @@ # We want home-manager to use the same set of nixpkgs as our system. inputs.nixpkgs.follows = "nixpkgs"; }; + + pre-commit-hooks = { + type = "github"; + owner = "cachix"; + repo = "pre-commit-hooks.nix"; + ref = "master"; + inputs = { + flake-utils.follows = "futils"; + nixpkgs.follows = "nixpkgs"; + }; + }; }; # Output config, or config for NixOS system @@ -57,6 +68,22 @@ }; }; + checks = { + pre-commit = inputs.pre-commit-hooks.lib.${system}.run { + src = ./.; + + hooks = { + nixpkgs-fmt = { + enable = true; + }; + + shellcheck = { + enable = true; + }; + }; + }; + }; + # `nix run .#ci.format` formats in current directory! apps.ci.format = ci.fmt.mkFmtScript self; @@ -67,6 +94,7 @@ default = pkgs.mkShell { name = "NixOS-config"; buildInputs = with pkgs; [ + gitAndTools.pre-commit nixUnstable nixfmt nixpkgs-fmt @@ -76,6 +104,7 @@ go gopls ]; + inherit (self.checks.${system}.pre-commit) shellHook; }; }; }) // { -- cgit v1.2.3