-{ pkgs ? import <nixpkgs> { }, lint ? false }:
+{
+ pkgs ? import <nixpkgs> { },
+ lint ? false,
+}:
+
+let
+ git-cache-fallback =
+ {
+ buildPythonPackage,
+ setuptools,
+ fetchgit,
+ git,
+ backoff,
+ mypy,
+ }:
+ buildPythonPackage rec {
+ pname = "git-cache";
+ version = "1.5.0";
+ src = fetchgit {
+ url = "https://git.scottworley.com/pub/git/git-cache";
+ rev = "v${version}";
+ hash = "sha256-g4TS/zX3e29Q3ThsCAX2wLLlYbi8fdux5uqAc+b/Oww=";
+ };
+ pyproject = true;
+ build-system = [ setuptools ];
+ propagatedBuildInputs = [ backoff ];
+ nativeCheckInputs = [
+ git
+ mypy
+ ];
+ doCheck = true;
+ checkPhase = "./test.sh";
+ };
+
+in
pkgs.python3Packages.callPackage
-({ lib, buildPythonPackage, nix, git, autopep8, mypy, pylint, }:
- buildPythonPackage rec {
- pname = "pinch";
- version = "2.1.0";
- src = lib.cleanSource ./.;
- checkInputs = [ nix git mypy ] ++ lib.optionals lint [ autopep8 pylint ];
- doCheck = true;
- checkPhase = "./test.sh";
- }) { }
+ (
+ {
+ lib,
+ buildPythonPackage,
+ setuptools,
+ nix,
+ git,
+ autopep8,
+ mypy,
+ pylint,
+ git-cache,
+ }:
+ buildPythonPackage rec {
+ pname = "pinch";
+ version = "3.3.2";
+ src = lib.cleanSource ./.;
+ pyproject = true;
+ build-system = [ setuptools ];
+ propagatedBuildInputs = [ git-cache ];
+ nativeCheckInputs = [
+ nix
+ git
+ mypy
+ ]
+ ++ lib.optionals lint [
+ autopep8
+ pylint
+ ];
+ doCheck = true;
+ checkPhase = "./test.sh";
+ meta = {
+ description = "A replacement for `nix-channel --update`";
+ homepage = "https://git.scottworley.com/pinch";
+ license = pkgs.lib.licenses.gpl3;
+ maintainers = with pkgs.lib.maintainers; [ chkno ];
+ };
+ }
+ )
+ {
+ git-cache =
+ pkgs.python3Packages.git-cache or (pkgs.python3Packages.callPackage git-cache-fallback { });
+ }