From e37f7e2760cf0f898ecadb5b551e3cd99b880da7 Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Wed, 22 May 2024 11:27:43 +0200 Subject: [PATCH] use a custom installer for pre-commit hooks --- devShell.nix | 15 +++--- flake.lock | 128 ++++----------------------------------------------- flake.nix | 3 +- 3 files changed, 18 insertions(+), 128 deletions(-) diff --git a/devShell.nix b/devShell.nix index 7cef9bf1..ad72eb21 100644 --- a/devShell.nix +++ b/devShell.nix @@ -9,6 +9,7 @@ }: let writers = pkgs.callPackage ./pkgs/builders/script-writers.nix { }; + inherit (pkgs.callPackage inputs.git-hooks { }) lib; ansiEscapes = { reset = ''\033[0m''; @@ -22,13 +23,10 @@ flakeIgnore = [ "E501" ]; } ./pkgs/scripts/select-shell.py; - pre-commit-check = inputs.pre-commit-hooks.lib.${pkgs.system}.run { - src = ./.; - hooks.treefmt = { - enable = true; - packageOverrides.treefmt = config.treefmt.build.wrapper; - }; - }; + # run treefmt before each commit + install-pre-commit-hook = + with lib.git-hooks; + pre-commit (wrap.abort-on-change config.treefmt.build.wrapper); in { devShells.default = pkgs.mkShell { @@ -43,8 +41,7 @@ config.treefmt.build.wrapper ]; shellHook = '' - # run treefmt before each commit - ${pre-commit-check.shellHook} + ${install-pre-commit-hook} echo -e "${ansiEscapes.green}switch to another dev-shell using: select-shell${ansiEscapes.reset}" ''; diff --git a/flake.lock b/flake.lock index e7353a61..78caa032 100644 --- a/flake.lock +++ b/flake.lock @@ -20,22 +20,6 @@ "type": "github" } }, - "flake-compat": { - "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": [ @@ -56,42 +40,19 @@ "type": "github" } }, - "flake-utils": { - "inputs": { - "systems": "systems" - }, + "git-hooks": { + "flake": false, "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "lastModified": 1715912400, + "narHash": "sha256-7GYXKJP7bglYgofN3/PW5EBGaGOIKbBKSgFb6m4ttC4=", + "owner": "fricklerhandwerk", + "repo": "git-hooks", + "rev": "5a23214ca74a7656048fe1402c4e98f5cd2b3729", "type": "github" }, "original": { - "owner": "numtide", - "repo": "flake-utils", - "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", + "owner": "fricklerhandwerk", + "repo": "git-hooks", "type": "github" } }, @@ -184,68 +145,14 @@ "type": "github" } }, - "nixpkgs-stable": { - "locked": { - "lastModified": 1710695816, - "narHash": "sha256-3Eh7fhEID17pv9ZxrPwCLfqXnYP006RKzSs0JptsN84=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "614b4613980a522ba49f0d194531beddbb7220d3", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-23.11", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1710765496, - "narHash": "sha256-p7ryWEeQfMwTB6E0wIUd5V2cFTgq+DRRBz2hYGnJZyA=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "e367f7a1fb93137af22a3908f00b9a35e2d286a7", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "pre-commit-hooks": { - "inputs": { - "flake-compat": "flake-compat", - "flake-utils": "flake-utils", - "gitignore": "gitignore", - "nixpkgs": "nixpkgs_2", - "nixpkgs-stable": "nixpkgs-stable" - }, - "locked": { - "lastModified": 1715609711, - "narHash": "sha256-/5u29K0c+4jyQ8x7dUIEUWlz2BoTSZWUP2quPwFCE7M=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "c182c876690380f8d3b9557c4609472ebfa1b141", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, "root": { "inputs": { "disko": "disko", "flake-parts": "flake-parts", + "git-hooks": "git-hooks", "nixos-generators": "nixos-generators", "nixos-images": "nixos-images", "nixpkgs": "nixpkgs", - "pre-commit-hooks": "pre-commit-hooks", "sops-nix": "sops-nix", "treefmt-nix": "treefmt-nix" } @@ -271,21 +178,6 @@ "type": "github" } }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, "treefmt-nix": { "inputs": { "nixpkgs": [ diff --git a/flake.nix b/flake.nix index 6ecba690..2d6fc28b 100644 --- a/flake.nix +++ b/flake.nix @@ -21,7 +21,8 @@ flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs"; treefmt-nix.url = "github:numtide/treefmt-nix"; treefmt-nix.inputs.nixpkgs.follows = "nixpkgs"; - pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix"; + git-hooks.url = "github:fricklerhandwerk/git-hooks"; + git-hooks.flake = false; }; outputs =