arnaucube
arnaucube/hyperplonkPublic Self-hosted repository
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}