aboutsummaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
authorQyriad <qyriad@qyriad.me>2024-05-06 22:50:32 -0600
committerQyriad <qyriad@qyriad.me>2024-05-07 12:38:01 -0600
commit4f98d21b71d02c09cab9df9778fcc03df4bcbd4e (patch)
tree57ec5c120ac8995d09af7763697d2bc3524970f1 /flake.nix
parent964ac8b0e88fb5789b87e33273e42363958d0afb (diff)
flake: move the pre-commit definition to its own file
It's a good hundred LOC, and wasn't coupled to the actual flake logic at all. Change-Id: Iebb4667b3197dbd8cb2b019014e99fa651848832
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix83
1 files changed, 1 insertions, 82 deletions
diff --git a/flake.nix b/flake.nix
index 1c090cadf..6594961ff 100644
--- a/flake.nix
+++ b/flake.nix
@@ -286,89 +286,8 @@
system:
let
pkgs = nixpkgsFor.${system}.native;
- # Import pre-commit bypassing the flake because flakes don't let
- # you have overlays. Also their implementation forces an
- # unnecessary reimport of nixpkgs for our use cases.
- tools = import (pre-commit-hooks + "/nix/call-tools.nix") pkgs;
- pre-commit-run = pkgs.callPackage (pre-commit-hooks + "/nix/run.nix") {
- inherit tools;
- isFlakes = true;
- # unused!
- gitignore-nix-src = builtins.throw "gitignore-nix-src is unused";
- };
in
- pre-commit-run {
- src = self;
- hooks = {
- no-commit-to-branch = {
- enable = true;
- settings.branch = [ "main" ];
- };
- check-case-conflicts.enable = true;
- check-executables-have-shebangs = {
- enable = true;
- stages = [ "commit" ];
- };
- check-shebang-scripts-are-executable = {
- enable = true;
- stages = [ "commit" ];
- };
- check-symlinks = {
- enable = true;
- excludes = [ "^tests/functional/lang/symlink-resolution/broken$" ];
- };
- check-merge-conflicts.enable = true;
- end-of-file-fixer = {
- enable = true;
- excludes = [
- "\\.drv$"
- "^tests/functional/lang/"
- ];
- };
- mixed-line-endings = {
- enable = true;
- excludes = [ "^tests/functional/lang/" ];
- };
- release-notes = {
- enable = true;
- package = pkgs.build-release-notes;
- files = "^doc/manual/rl-next(-dev)?";
- pass_filenames = false;
- entry = ''
- ${lib.getExe pkgs.build-release-notes} doc/manual/rl-next doc/manual/rl-next-dev
- '';
- };
- check-headers = {
- enable = true;
- package = pkgs.check-headers;
- files = "^src/";
- types = [
- "c++"
- "file"
- "header"
- ];
- # generated files; these will never actually be seen by this
- # check, and are left here as documentation
- excludes = [
- "(parser|lexer)-tab\\.hh$"
- "\\.gen\\.hh$"
- ];
- entry = lib.getExe pkgs.check-headers;
- };
- # TODO: Once the test suite is nicer, clean up and start
- # enforcing trailing whitespace on tests that don't explicitly
- # check for it.
- trim-trailing-whitespace = {
- enable = true;
- stages = [ "commit" ];
- excludes = [ "^tests/functional/lang/" ];
- };
- treefmt = {
- enable = true;
- settings.formatters = [ pkgs.nixfmt ];
- };
- };
- }
+ import ./misc/pre-commit.nix { inherit self pkgs pre-commit-hooks; }
);
};