writers: add writeGuile[Bin] (#364531)
[NixPkgs.git] / pkgs / applications / version-management / git-archive-all / default.nix
blobd43c2359e377c057b8042d1fd4311a240d83619d
2   lib,
3   buildPythonApplication,
4   fetchFromGitHub,
5   git,
6   pytestCheckHook,
7   pytest-cov-stub,
8   pytest-mock,
9 }:
11 buildPythonApplication rec {
12   pname = "git-archive-all";
13   version = "1.23.1";
15   src = fetchFromGitHub {
16     owner = "Kentzo";
17     repo = "git-archive-all";
18     rev = version;
19     hash = "sha256-fIPjggOx+CEorj1bazz8s81ZdppkTL0OlA5tRqCYZyc=";
20   };
22   # * Don't use pinned dependencies
23   # * Remove formatter and coverage generator
24   # * Don't fail on warnings. Almost all tests output this warning:
25   #   ResourceWarning: unclosed file [...]/repo.tar
26   #   https://github.com/Kentzo/git-archive-all/issues/90
27   postPatch = ''
28     substituteInPlace setup.cfg \
29       --replace pycodestyle==2.5.0 "" \
30       --replace pytest==5.2.2 pytest \
31       --replace pytest-cov==2.8.1 "" \
32       --replace pytest-mock==1.11.2 pytest-mock \
33       --replace "filterwarnings = error" ""
34     substituteInPlace test_git_archive_all.py \
35       --replace "import pycodestyle" ""
36   '';
38   nativeCheckInputs = [
39     git
40   ];
42   checkInputs = [
43     pytestCheckHook
44     pytest-cov-stub
45     pytest-mock
46   ];
48   disabledTests = [ "pycodestyle" ];
50   preCheck = ''
51     export HOME="$(mktemp -d)"
52   '';
54   meta = with lib; {
55     description = "Archive a repository with all its submodules";
56     longDescription = ''
57       A python script wrapper for git-archive that archives a git superproject
58       and its submodules, if it has any. Takes into account .gitattributes
59     '';
60     homepage = "https://github.com/Kentzo/git-archive-all";
61     license = licenses.mit;
62     maintainers = with maintainers; [ fgaz ];
63     mainProgram = "git-archive-all";
64   };