hyperplonk/nix/pre-commit.nix
nix/pre-commit.nixRaw
1{ pkgs, ... }:
2
3let
4 nix-pre-commit-hooks = import (pkgs.fetchFromGitHub {
5 owner = "cachix";
6 repo = "pre-commit-hooks.nix";
7 rev = "ff9c0b459ddc4b79c06e19d44251daa8e9cd1746";
8 sha256 = "jlsQb2y6A5dB1R0wVPLOfDGM0wLyfYqEJNzMtXuzCXw=";
9 });
10in
11nix-pre-commit-hooks.run {
12 src = ./.;
13 hooks = {
14 check-format = {
15 enable = true;
16 files = "\\.rs$";
17 entry = "cargo fmt -- --check";
18 };
19 doctest = {
20 enable = true;
21 entry = "cargo test --doc";
22 files = "\\.rs$";
23 pass_filenames = false;
24 };
25 # The hook "clippy" that ships with nix-precommit-hooks is outdated.
26 cargo-clippy = {
27 enable = true;
28 description = "Lint Rust code.";
29 entry = "cargo-clippy";
30 files = "\\.rs$";
31 pass_filenames = false;
32 };
33 };
34}