From 2126268791fdf9001c2b7f6b96f05c98e222f8a7 Mon Sep 17 00:00:00 2001 From: David Arnold Date: Wed, 27 Jan 2021 10:31:17 -0500 Subject: [PATCH 1/2] shell: use devshell-native pre-commit hooks --- .pre-commit-config.yaml | 5 ----- flake.lock | 6 +++--- shell/default.nix | 29 +++++++++++++++++++++++------ 3 files changed, 26 insertions(+), 14 deletions(-) delete mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml deleted file mode 100644 index f1ed6973..00000000 --- a/.pre-commit-config.yaml +++ /dev/null @@ -1,5 +0,0 @@ -repos: -- repo: https://github.com/nix-community/nixpkgs-fmt - rev: master - hooks: - - id: nixpkgs-fmt diff --git a/flake.lock b/flake.lock index dfab41be..67f47ded 100644 --- a/flake.lock +++ b/flake.lock @@ -23,11 +23,11 @@ }, "devshell": { "locked": { - "lastModified": 1607956014, - "narHash": "sha256-kcmh1ZO56GFYStDeM2VngJSvx/e8aKhFSYqLwfiq+Es=", + "lastModified": 1611739118, + "narHash": "sha256-QjLEfLSiiWDdURFMkke/W7iJsA0unI3pg+91ubvmjbI=", "owner": "numtide", "repo": "devshell", - "rev": "17f46732ce299daa2977be2978f60d258c2d1b41", + "rev": "d7a5ebc22aa89a40a96b413a8fc616178920567c", "type": "github" }, "original": { diff --git a/shell/default.nix b/shell/default.nix index 31e01c24..8a795ea4 100644 --- a/shell/default.nix +++ b/shell/default.nix @@ -34,7 +34,7 @@ let name = "flk"; in -pkgs.mkDevShell { +pkgs.devshell.mkShell { inherit name; packages = with pkgs; with installPkgs; [ @@ -48,6 +48,28 @@ pkgs.mkDevShell { env = { inherit name; }; + git.hooks = with pkgs; { + enable = true; + pre-commit.text = '' + if ${git}/bin/git rev-parse --verify HEAD >/dev/null 2>&1 + then + against=HEAD + else + # Initial commit: diff against an empty tree object + against=$(${git}/bin/git hash-object -t tree /dev/null) + fi + # Redirect output to stderr. + exec 1>&2 + + # Format staged nix files. + exec ${nixpkgs-fmt}/bin/nixpkgs-fmt \ + $( + ${git}/bin/git diff-index --name-only --cached $against -- \ + | ${ripgrep}/bin/rg '\.nix$' + ) + ''; + }; + commands = with pkgs; [ { name = nixpkgs-fmt.pname; @@ -61,11 +83,6 @@ pkgs.mkDevShell { category = "main"; package = flk; } - { - name = "hooks"; - help = "install git hooks"; - command = "pre-commit install"; - } { name = "grip"; help = python38Packages.grip.meta.description; From 0051415adb0afc8bd8d0033c4dec5f956dc72e8b Mon Sep 17 00:00:00 2001 From: David Arnold Date: Wed, 27 Jan 2021 12:04:57 -0500 Subject: [PATCH 2/2] devshell: pull in latest fixes --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 67f47ded..2f3b1813 100644 --- a/flake.lock +++ b/flake.lock @@ -23,11 +23,11 @@ }, "devshell": { "locked": { - "lastModified": 1611739118, - "narHash": "sha256-QjLEfLSiiWDdURFMkke/W7iJsA0unI3pg+91ubvmjbI=", + "lastModified": 1611764683, + "narHash": "sha256-RETUhdtMma4yBWzJECs2gCZmLlsyqyoXA/dUon3Hxic=", "owner": "numtide", "repo": "devshell", - "rev": "d7a5ebc22aa89a40a96b413a8fc616178920567c", + "rev": "21f3cc1433ec257cc9b85c91e471d54f7f74f646", "type": "github" }, "original": {