diff options
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/pre-commit/default.nix')
-rw-r--r-- | nixpkgs/pkgs/development/python-modules/pre-commit/default.nix | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/pre-commit/default.nix b/nixpkgs/pkgs/development/python-modules/pre-commit/default.nix new file mode 100644 index 000000000000..a933093bef42 --- /dev/null +++ b/nixpkgs/pkgs/development/python-modules/pre-commit/default.nix @@ -0,0 +1,63 @@ +{ lib, fetchPypi, buildPythonPackage, pythonOlder +, aspy-yaml +, cached-property +, cfgv +, futures +, identify +, importlib-metadata +, importlib-resources +, isPy27 +, nodeenv +, python +, six +, toml +, virtualenv +}: + +buildPythonPackage rec { + pname = "pre-commit"; + version = "2.4.0"; + disabled = isPy27; + + src = fetchPypi { + inherit version; + pname = "pre_commit"; + sha256 = "1l0lcl3l2544m2k8jlmblfsjn0p2hdxrzzwy646xpvp0rcs2wgkh"; + }; + + patches = [ + ./hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch + ./languages-use-the-hardcoded-path-to-python-binaries.patch + ]; + + propagatedBuildInputs = [ + aspy-yaml + cached-property + cfgv + identify + nodeenv + six + toml + virtualenv + ] ++ lib.optional (pythonOlder "3.8") importlib-metadata + ++ lib.optional (pythonOlder "3.7") importlib-resources; + + # slow and impure + doCheck = false; + + preFixup = '' + substituteInPlace $out/${python.sitePackages}/pre_commit/resources/hook-tmpl \ + --subst-var-by pre-commit $out + substituteInPlace $out/${python.sitePackages}/pre_commit/languages/python.py \ + --subst-var-by virtualenv ${virtualenv} + substituteInPlace $out/${python.sitePackages}/pre_commit/languages/node.py \ + --subst-var-by nodeenv ${nodeenv} + ''; + + meta = with lib; { + description = "A framework for managing and maintaining multi-language pre-commit hooks"; + homepage = "https://pre-commit.com/"; + license = licenses.mit; + maintainers = with maintainers; [ borisbabic ]; + }; +} |