about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/tools/backblaze-b2
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/tools/backblaze-b2')
-rw-r--r--nixpkgs/pkgs/development/tools/backblaze-b2/default.nix83
1 files changed, 83 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/tools/backblaze-b2/default.nix b/nixpkgs/pkgs/development/tools/backblaze-b2/default.nix
new file mode 100644
index 000000000000..3bab2e7bba2f
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/backblaze-b2/default.nix
@@ -0,0 +1,83 @@
+{ lib, python3Packages, fetchPypi, installShellFiles }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "backblaze-b2";
+  version = "3.9.0";
+  format = "setuptools";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "b2";
+    hash = "sha256-Z9LQapWl0zblcAyMOfKhn5/O1H6+tmgiPQfAB241jqU=";
+  };
+
+  postPatch = ''
+    substituteInPlace requirements.txt \
+      --replace 'phx-class-registry==4.0.5' 'phx-class-registry'
+    substituteInPlace requirements.txt \
+      --replace 'tabulate==0.8.10' 'tabulate'
+    substituteInPlace setup.py \
+      --replace 'setuptools_scm<6.0' 'setuptools_scm'
+  '';
+
+  nativeBuildInputs = [
+    installShellFiles
+    python3Packages.setuptools-scm
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    argcomplete
+    arrow
+    b2sdk
+    phx-class-registry
+    setuptools
+    docutils
+    rst2ansi
+    tabulate
+    tqdm
+  ];
+
+  nativeCheckInputs = with python3Packages; [
+    backoff
+    more-itertools
+    pexpect
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  disabledTests = [
+    # require network
+    "test_files_headers"
+    "test_integration"
+
+    # fixed by https://github.com/Backblaze/B2_Command_Line_Tool/pull/915
+    "TestRmConsoleTool"
+  ];
+
+  disabledTestPaths = [
+    # requires network
+    "test/integration/test_b2_command_line.py"
+
+    # it's hard to make it work on nix
+    "test/integration/test_autocomplete.py"
+  ];
+
+  postInstall = ''
+    mv "$out/bin/b2" "$out/bin/backblaze-b2"
+
+    installShellCompletion --cmd backblaze-b2 \
+      --bash <(${python3Packages.argcomplete}/bin/register-python-argcomplete backblaze-b2) \
+      --zsh <(${python3Packages.argcomplete}/bin/register-python-argcomplete backblaze-b2)
+  '';
+
+  meta = with lib; {
+    description = "Command-line tool for accessing the Backblaze B2 storage service";
+    homepage = "https://github.com/Backblaze/B2_Command_Line_Tool";
+    changelog = "https://github.com/Backblaze/B2_Command_Line_Tool/blob/v${version}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hrdinka kevincox tomhoule ];
+  };
+}