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