build(flake): add pre-commit-hooks

This enforces formatting rules.
This commit is contained in:
Silas Schöffel 2024-05-08 20:51:09 +02:00
parent fb2931cf64
commit 37b3fc8b4f
Signed by: sils
GPG Key ID: 6A587D46E3F44592
3 changed files with 82 additions and 0 deletions

3
.gitignore vendored
View File

@ -30,6 +30,9 @@ plugin.txt
.idea .idea
.direnv .direnv
# Pre Commit hooks
.pre-commit-config.yaml
# LS # LS
## lua ## lua
.luarc.json .luarc.json

View File

@ -56,6 +56,58 @@
"type": "github" "type": "github"
} }
}, },
"git-hooks": {
"inputs": {
"flake-compat": [
"flake-compat"
],
"flake-utils": [
"flake-utils"
],
"gitignore": [
"gitignore"
],
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-stable": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1714478972,
"narHash": "sha256-q//cgb52vv81uOuwz1LaXElp3XAe1TqrABXODAEF6Sk=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "2849da033884f54822af194400f8dff435ada242",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"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"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1714656196, "lastModified": 1714656196,
@ -77,6 +129,8 @@
"crane": "crane", "crane": "crane",
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"git-hooks": "git-hooks",
"gitignore": "gitignore",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"rust-overlay": "rust-overlay", "rust-overlay": "rust-overlay",
"systems": "systems", "systems": "systems",

View File

@ -34,6 +34,16 @@
nixpkgs.follows = "nixpkgs"; nixpkgs.follows = "nixpkgs";
}; };
}; };
git-hooks = {
url = "github:cachix/git-hooks.nix";
inputs = {
flake-compat.follows = "flake-compat";
flake-utils.follows = "flake-utils";
gitignore.follows = "gitignore";
nixpkgs.follows = "nixpkgs";
nixpkgs-stable.follows = "nixpkgs";
};
};
rust-overlay = { rust-overlay = {
url = "github:oxalica/rust-overlay"; url = "github:oxalica/rust-overlay";
inputs = { inputs = {
@ -43,6 +53,12 @@
}; };
# inputs for following # inputs for following
gitignore = {
url = "github:hercules-ci/gitignore.nix";
inputs = {
nixpkgs.follows = "nixpkgs";
};
};
systems = { systems = {
url = "github:nix-systems/x86_64-linux"; # only evaluate for this system url = "github:nix-systems/x86_64-linux"; # only evaluate for this system
}; };
@ -62,6 +78,7 @@
self, self,
nixpkgs, nixpkgs,
flake-utils, flake-utils,
git-hooks,
treefmt-nix, treefmt-nix,
crane, crane,
rust-overlay, rust-overlay,
@ -141,11 +158,19 @@
checks = { checks = {
inherit craneBuild; inherit craneBuild;
formatting = treefmtEval.config.build.check self; formatting = treefmtEval.config.build.check self;
pre-commit = git-hooks.lib.${system}.run {
src = ./.;
hooks.treefmt = {
enable = true;
package = treefmtEval.config.build.wrapper;
};
};
}; };
formatter = treefmtEval.config.build.wrapper; formatter = treefmtEval.config.build.wrapper;
devShells.default = pkgs.mkShell { devShells.default = pkgs.mkShell {
inherit (self.checks.${system}.pre-commit) shellHook;
packages = with pkgs; [ packages = with pkgs; [
cocogitto cocogitto