biglybt: 3.5.0.0 -> 3.6.0.0
[NixPkgs.git] / pkgs / development / tools / backblaze-b2 / default.nix
blobfadd6a2d4f76dad9421a517e7f058c4588ac8dfb
1 { lib
2 , python3Packages
3 , fetchFromGitHub
4 , installShellFiles
5 , testers
6 , backblaze-b2
7 # executable is renamed to backblaze-b2 by default, to avoid collision with boost's 'b2'
8 , execName ? "backblaze-b2"
9 }:
11 python3Packages.buildPythonApplication rec {
12   pname = "backblaze-b2";
13   version = "3.18.0";
14   pyproject = true;
16   src = fetchFromGitHub {
17     owner = "Backblaze";
18     repo = "B2_Command_Line_Tool";
19     rev = "refs/tags/v${version}";
20     hash = "sha256-1UXByc3jjp8GN7+aI2GBohJ0DFxgp604QOsXp5GaL4Q=";
21   };
23   nativeBuildInputs = [
24     installShellFiles
25   ];
27   build-system = with python3Packages; [
28     pdm-backend
29   ];
31   dependencies = with python3Packages; [
32     argcomplete
33     arrow
34     b2sdk
35     phx-class-registry
36     docutils
37     rst2ansi
38     tabulate
39     tqdm
40     platformdirs
41     packaging
42     setuptools
43   ];
45   nativeCheckInputs = with python3Packages; [
46     backoff
47     more-itertools
48     pexpect
49     pytestCheckHook
50     pytest-xdist
51   ];
53   preCheck = ''
54     export HOME=$(mktemp -d)
55   '';
57   disabledTestPaths = [
58     # Test requires network
59     "test/integration/test_b2_command_line.py"
60     "test/integration/test_tqdm_closer.py"
61     # it's hard to make it work on nix
62     "test/integration/test_autocomplete.py"
63     "test/unit/test_console_tool.py"
64     # this one causes successive tests to fail
65     "test/unit/_cli/test_autocomplete_cache.py"
66   ];
68   disabledTests = [
69     # Autocomplete is not successful in a sandbox
70     "test_autocomplete_installer"
71     "test_help"
72     "test_install_autocomplete"
73   ];
75   postInstall = lib.optionalString (execName != "b2") ''
76     mv "$out/bin/b2" "$out/bin/${execName}"
77   ''
78   + ''
79     installShellCompletion --cmd ${execName} \
80       --bash <(${python3Packages.argcomplete}/bin/register-python-argcomplete ${execName}) \
81       --zsh <(${python3Packages.argcomplete}/bin/register-python-argcomplete ${execName})
82   '';
84   passthru.tests.version = (testers.testVersion {
85     package = backblaze-b2;
86     command = "${execName} version --short";
87   }).overrideAttrs (old: {
88     # workaround the error: Permission denied: '/homeless-shelter'
89     # backblaze-b2 fails to create a 'b2' directory under the XDG config path
90     preHook = ''
91       export HOME=$(mktemp -d)
92     '';
93   });
95   meta = with lib; {
96     description = "Command-line tool for accessing the Backblaze B2 storage service";
97     homepage = "https://github.com/Backblaze/B2_Command_Line_Tool";
98     changelog = "https://github.com/Backblaze/B2_Command_Line_Tool/blob/v${version}/CHANGELOG.md";
99     license = licenses.mit;
100     maintainers = with maintainers; [ hrdinka tomhoule ];
101     mainProgram = "backblaze-b2";
102   };