Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at 20.09 1.5 kB view raw
1{ lib, fetchPypi, buildPythonPackage, pythonOlder 2, aspy-yaml 3, cached-property 4, cfgv 5, futures 6, identify 7, importlib-metadata 8, importlib-resources 9, isPy27 10, nodeenv 11, python 12, six 13, toml 14, virtualenv 15}: 16 17buildPythonPackage rec { 18 pname = "pre-commit"; 19 version = "2.7.1"; 20 disabled = isPy27; 21 22 src = fetchPypi { 23 inherit version; 24 pname = "pre_commit"; 25 sha256 = "0w2a104yhbw1z92rcwpq0gdjsxvr2bwx5ry5xhlf2psnfkjx6ky5"; 26 }; 27 28 patches = [ 29 ./hook-tmpl-use-the-hardcoded-path-to-pre-commit.patch 30 ./languages-use-the-hardcoded-path-to-python-binaries.patch 31 ]; 32 33 propagatedBuildInputs = [ 34 aspy-yaml 35 cached-property 36 cfgv 37 identify 38 nodeenv 39 six 40 toml 41 virtualenv 42 ] ++ lib.optional (pythonOlder "3.8") importlib-metadata 43 ++ lib.optional (pythonOlder "3.7") importlib-resources; 44 45 # slow and impure 46 doCheck = false; 47 48 preFixup = '' 49 substituteInPlace $out/${python.sitePackages}/pre_commit/resources/hook-tmpl \ 50 --subst-var-by pre-commit $out 51 substituteInPlace $out/${python.sitePackages}/pre_commit/languages/python.py \ 52 --subst-var-by virtualenv ${virtualenv} 53 substituteInPlace $out/${python.sitePackages}/pre_commit/languages/node.py \ 54 --subst-var-by nodeenv ${nodeenv} 55 ''; 56 57 meta = with lib; { 58 description = "A framework for managing and maintaining multi-language pre-commit hooks"; 59 homepage = "https://pre-commit.com/"; 60 license = licenses.mit; 61 maintainers = with maintainers; [ borisbabic ]; 62 }; 63}