about summary refs log tree commit diff
path: root/pkgs/tools/compression/dtrx/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/compression/dtrx/default.nix')
-rw-r--r--pkgs/tools/compression/dtrx/default.nix52
1 files changed, 52 insertions, 0 deletions
diff --git a/pkgs/tools/compression/dtrx/default.nix b/pkgs/tools/compression/dtrx/default.nix
new file mode 100644
index 0000000000000..392c2b960f277
--- /dev/null
+++ b/pkgs/tools/compression/dtrx/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, fetchFromGitHub
+, python3Packages
+, gnutar
+, unzip
+, lhasa
+, rpm
+, binutils
+, cpio
+, gzip
+, p7zip
+, cabextract
+, unrar
+, unshield
+, bzip2
+, xz
+, lzip
+, unzipSupport ? false
+, unrarSupport ? false
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "dtrx";
+  version = "8.2.1";
+
+  src = fetchFromGitHub {
+    owner = "dtrx-py";
+    repo = "dtrx";
+    rev = version;
+    sha256 = "sha256-ayQ52teXWpw3ZvPhfqxFHxMZatQK9NKv/97ovANFZcE=";
+  };
+
+  postInstall =
+    let
+      archivers = lib.makeBinPath (
+        [ gnutar lhasa rpm binutils cpio gzip p7zip cabextract unshield bzip2 xz lzip ]
+        ++ lib.optional (unzipSupport) unzip
+        ++ lib.optional (unrarSupport) unrar
+      );
+    in ''
+      wrapProgram "$out/bin/dtrx" --prefix PATH : "${archivers}"
+    '';
+
+  buildInputs = [ python3Packages.twine ];
+
+  meta = with lib; {
+    description = "Do The Right Extraction: A tool for taking the hassle out of extracting archives";
+    homepage = "https://github.com/dtrx-py/dtrx";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.spwhitt ];
+  };
+}