1{ lib
2, buildPythonApplication
3, fetchFromGitHub
4, gitMinimal
5, python3
6}:
7
8let
9 py = python3.override {
10 packageOverrides = self: super: {
11
12 click = super.click.overridePythonAttrs (oldAttrs: rec {
13 version = "8.0.1";
14 src = oldAttrs.src.override {
15 inherit version;
16 sha256 = "0ymdyf37acq4qxh038q0xx44qgj6y2kf0jd0ivvix6qij88w214c";
17 };
18 });
19
20 arrow = super.arrow.overridePythonAttrs (oldAttrs: rec {
21 version = "1.2.0";
22 src = oldAttrs.src.override {
23 inherit version;
24 sha256 = "0x70a057dqki2z1ny491ixbg980hg4lihc7g1zmy69g4v6xjkz0n";
25 };
26 });
27
28 };
29 };
30in
31with py.pkgs;
32
33buildPythonApplication rec {
34 pname = "gitlint";
35 version = "0.16.0";
36
37 src = fetchFromGitHub {
38 owner = "jorisroovers";
39 repo = "gitlint";
40 rev = "v${version}";
41 sha256 = "1j6gfgqin5dmqd2qq0vib55d2r07s9sy4hwrvwlichxx5jjwncly";
42 };
43
44 nativeBuildInputs = [
45 wheel
46 ];
47
48 propagatedBuildInputs = [
49 arrow
50 click
51 sh
52 ];
53
54 preCheck = ''
55 export PATH="$out/bin:$PATH"
56 '';
57
58 checkInputs = [
59 gitMinimal
60 ];
61
62 meta = with lib; {
63 description = "Linting for your git commit messages";
64 homepage = "https://jorisroovers.com/gitlint/";
65 license = licenses.mit;
66 maintainers = with maintainers; [ ethancedwards8 fab ];
67 };
68}