]> git.scottworley.com Git - pinch/blob - default.nix
f35c1524eea48f58286c55771ace59533eefd40f
[pinch] / default.nix
1 { pkgs ? import <nixpkgs> { }, lint ? false }:
2
3 let
4
5 # Remove after https://github.com/NixOS/nixpkgs/pull/93377 reaches stable
6 backoff-fallback = { lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook
7 , poetry, pytest-asyncio, }:
8 buildPythonPackage rec {
9 pname = "backoff";
10 version = "1.10.0";
11 src = fetchFromGitHub {
12 owner = "litl";
13 repo = pname;
14 rev = "v${version}";
15 sha256 = "1jj0l6pjx747d2yyvnzd3qbm4qr73sq6cc56dhvd8wqfbp5279x0";
16 };
17 format = "pyproject";
18 nativeBuildInputs = [ poetry ];
19 checkInputs = [ pytestCheckHook pytest-asyncio ];
20 };
21
22 git-cache-fallback = { buildPythonPackage, fetchgit, git, backoff, mypy, }:
23 buildPythonPackage rec {
24 pname = "git-cache";
25 version = "1.4.1";
26 src = fetchgit {
27 url = "https://scottworley.com/git-cache.git";
28 rev = "v${version}";
29 sha256 = "0ml1myhmd9mw1z5bwni9fhvx7h9dknhmqq4nyci9n5lvrhbmcdc9";
30 };
31 propagatedBuildInputs = [ backoff ];
32 checkInputs = [ git mypy ];
33 doCheck = true;
34 checkPhase = "./test.sh";
35 };
36
37 in pkgs.python3Packages.callPackage ({ lib, buildPythonPackage, nix_2_3, git
38 , autopep8, makeWrapper, mypy, pylint, git-cache, }:
39 buildPythonPackage rec {
40 pname = "pinch";
41 version = "3.0.6";
42 src = lib.cleanSource ./.;
43 buildInputs = [ makeWrapper ];
44 propagatedBuildInputs = [ git-cache ];
45 checkInputs = [ nix_2_3 git mypy ] ++ lib.optionals lint [ autopep8 pylint ];
46 postInstall = ''
47 wrapProgram "$out/bin/pinch" --prefix PATH : ${nix_2_3}/bin
48 '';
49 doCheck = true;
50 checkPhase = "./test.sh";
51 }) {
52 git-cache =
53 pkgs.python3Packages.git-cache or (pkgs.python3Packages.callPackage
54 git-cache-fallback {
55 backoff =
56 pkgs.python3Packages.backoff or (pkgs.python3Packages.callPackage
57 backoff-fallback { });
58 });
59 nix_2_3 = pkgs.nix_2_3 or pkgs.nix;
60 }