add pre-commit hooks
3 files changed, 96 insertions(+), 6 deletions(-)
changed files
M flake.lock → flake.lock
@@ -157,6 +157,22 @@ "repo": "flake-compat", "type": "github" } }, + "flake-compat_3": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, "flake-parts": { "inputs": { "nixpkgs-lib": [@@ -293,6 +309,27 @@ "type": "github" } }, "gitignore": { + "inputs": { + "nixpkgs": [ + "pre-commit-hooks", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "gitignore_2": { "inputs": { "nixpkgs": [ "searchix",@@ -545,6 +582,22 @@ } }, "nixpkgs_3": { "locked": { + "lastModified": 1730768919, + "narHash": "sha256-8AKquNnnSaJRXZxc5YmF/WfmxiHX6MMZZasRP6RRQkE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a04d33c0c3f1a59a2c1cb0c6e34cd24500e5a1dc", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_4": { + "locked": { "lastModified": 1749776303, "narHash": "sha256-OHibOvVwKqO1qvRg0r3agtd1EagW4THBcoWT7QGgcNo=", "owner": "NixOS",@@ -559,7 +612,7 @@ "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1750878217, "narHash": "sha256-iZZ2tr22ObTPmwpIsHxPpNV9JmUjoOzDXq07uK9GS30=",@@ -575,7 +628,7 @@ "repo": "nixpkgs", "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1747958103, "narHash": "sha256-qmmFCrfBwSHoWw7cVK4Aj+fns+c54EBP8cGqp/yK410=",@@ -663,6 +716,26 @@ "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat_2", "gitignore": "gitignore", + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1750779888, + "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, + "pre-commit-hooks_2": { + "inputs": { + "flake-compat": "flake-compat_3", + "gitignore": "gitignore_2", "nixpkgs": [ "searchix", "nixpkgs"@@ -749,6 +822,7 @@ "nixpkgs" ], "nixvim": "nixvim", "nur": "nur", + "pre-commit-hooks": "pre-commit-hooks", "searchix": "searchix", "srvos": "srvos", "treefmt-nix": "treefmt-nix_3",@@ -759,8 +833,8 @@ "searchix": { "inputs": { "flake-utils": "flake-utils_4", "gomod2nix": "gomod2nix_2", - "nixpkgs": "nixpkgs_3", - "pre-commit-hooks": "pre-commit-hooks", + "nixpkgs": "nixpkgs_4", + "pre-commit-hooks": "pre-commit-hooks_2", "simple-css": "simple-css" }, "locked": {@@ -791,7 +865,7 @@ } }, "srvos": { "inputs": { - "nixpkgs": "nixpkgs_4" + "nixpkgs": "nixpkgs_5" }, "locked": { "lastModified": 1750907330,@@ -971,7 +1045,7 @@ } }, "treefmt-nix_3": { "inputs": { - "nixpkgs": "nixpkgs_5" + "nixpkgs": "nixpkgs_6" }, "locked": { "lastModified": 1750931469,
M flake.nix → flake.nix
@@ -25,6 +25,7 @@ nixvim = { url = "github:nix-community/nixvim"; inputs.nixpkgs.follows = "nixpkgs"; }; + pre-commit-hooks.url = "github:cachix/git-hooks.nix"; treefmt-nix.url = "github:numtide/treefmt-nix"; golink = { url = "github:tailscale/golink";@@ -195,6 +196,9 @@ in { devShells = { default = pkgs.mkShell { + inherit (self.checks.${system}.pre-commit-check) shellHook; + buildInputs = self.checks.${system}.pre-commit-check.enabledPackages; + packages = with pkgs; [ nixos-rebuild agenix.packages.${system}.default@@ -202,6 +206,17 @@ ]; }; }; formatter = treefmtEval.config.build.wrapper; + checks = { + pre-commit-check = pre-commit-hooks.lib.${system}.run { + src = ./.; + hooks = { + check-executables-have-shebangs.enable = true; + check-shebang-scripts-are-executable.enable = true; + check-symlinks.enable = true; + reuse.enable = true; + }; + }; + }; } ); }