diff --git a/pkgs/development/python-modules/pre-commit/default.nix b/pkgs/development/python-modules/pre-commit/default.nix index d3808bbb9110..963aa19653b5 100644 --- a/pkgs/development/python-modules/pre-commit/default.nix +++ b/pkgs/development/python-modules/pre-commit/default.nix @@ -7,6 +7,7 @@ , importlib-metadata , importlib-resources , nodeenv +, python , six , toml , virtualenv @@ -22,6 +23,10 @@ buildPythonApplication rec { sha256 = "0l5qg1cw4a0670m96s0ryy5mqz5aslfrrnwpriqgmrnsgdixhj4g"; }; + patches = [ + ./hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch + ]; + propagatedBuildInputs = [ aspy-yaml cached-property @@ -38,6 +43,11 @@ buildPythonApplication rec { # slow and impure doCheck = false; + preFixup = '' + substituteInPlace $out/${python.sitePackages}/pre_commit/resources/hook-tmpl \ + --subst-var-by pre-commit $out + ''; + meta = with lib; { description = "A framework for managing and maintaining multi-language pre-commit hooks"; homepage = https://pre-commit.com/; diff --git a/pkgs/development/python-modules/pre-commit/hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch b/pkgs/development/python-modules/pre-commit/hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch new file mode 100644 index 000000000000..23115bbbd20f --- /dev/null +++ b/pkgs/development/python-modules/pre-commit/hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch @@ -0,0 +1,25 @@ +From d9e6999e32112602ec276634cb004eda3ca64ec3 Mon Sep 17 00:00:00 2001 +From: "Wael M. Nasreddine" +Date: Mon, 13 Jan 2020 11:04:58 -0800 +Subject: [PATCH] hook-tmpl: use the hardcoded path to pre-commit, if found + +--- + pre_commit/resources/hook-tmpl | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/pre_commit/resources/hook-tmpl b/pre_commit/resources/hook-tmpl +index 213d16e..3a99211 100755 +--- a/pre_commit/resources/hook-tmpl ++++ b/pre_commit/resources/hook-tmpl +@@ -107,6 +107,8 @@ def _exe() -> Tuple[str, ...]: + except OSError: + pass + ++ if os.path.isfile('@pre-commit@/bin/pre-commit') and os.access('@pre-commit@/bin/pre-commit', os.X_OK): ++ return ('@pre-commit@/bin/pre-commit', 'run') + if distutils.spawn.find_executable('pre-commit'): + return ('pre-commit', 'run') + +-- +2.23.1 +