1{ lib
2, fetchFromGitHub
3, gitUpdater
4, python3Packages
5, gnutar
6, unzip
7, lhasa
8, rpm
9, binutils
10, cpio
11, gzip
12, p7zip
13, cabextract
14, unrar
15, unshield
16, bzip2
17, xz
18, lzip
19, unzipSupport ? false
20, unrarSupport ? false
21}:
22
23python3Packages.buildPythonApplication rec {
24 pname = "dtrx";
25 version = "8.5.3";
26
27 src = fetchFromGitHub {
28 owner = "dtrx-py";
29 repo = "dtrx";
30 rev = version;
31 sha256 = "sha256-LB3F6jcqQPRsjFO4L2fPAPnacDAdtcaadgGbwXA9LAw=";
32 };
33
34 makeWrapperArgs =
35 let
36 archivers = lib.makeBinPath (
37 [ gnutar lhasa rpm binutils cpio gzip p7zip cabextract unshield bzip2 xz lzip ]
38 ++ lib.optional (unzipSupport) unzip
39 ++ lib.optional (unrarSupport) unrar
40 );
41 in [
42 ''--prefix PATH : "${archivers}"''
43 ];
44
45 nativeBuildInputs = [ python3Packages.invoke ];
46
47 passthru.updateScript = gitUpdater { };
48
49 meta = with lib; {
50 description = "Do The Right Extraction: A tool for taking the hassle out of extracting archives";
51 homepage = "https://github.com/dtrx-py/dtrx";
52 license = licenses.gpl3Plus;
53 maintainers = [ ];
54 };
55}