lol
1{ stdenv, lib, fetchurl, makeWrapper, unzip, python3, unar, ffmpeg, nixosTests }:
2
3let
4 runtimeProgDeps = [
5 ffmpeg
6 unar
7 ];
8in
9stdenv.mkDerivation rec {
10 pname = "bazarr";
11 version = "1.3.1";
12
13 sourceRoot = ".";
14
15 src = fetchurl {
16 url = "https://github.com/morpheus65535/bazarr/releases/download/v${version}/bazarr.zip";
17 sha256 = "sha256-AhUMrvnZoo0XMfJ6F9Bi4mC0hk5T3EkQPX/s4tHWcic=";
18 };
19
20 nativeBuildInputs = [ unzip makeWrapper ];
21
22 buildInputs = [
23 (python3.withPackages (ps: [
24 ps.lxml
25 ps.numpy
26 ps.gevent
27 ps.gevent-websocket
28 ps.pillow
29 ps.setuptools
30 ]))
31 ] ++ runtimeProgDeps;
32
33 installPhase = ''
34 runHook preInstall
35
36 mkdir -p "$out"/{bin,share/${pname}}
37 cp -r * "$out/share/${pname}"
38
39 # Add missing shebang and execute perms so that patchShebangs can do its
40 # thing.
41 sed -i "1i #!/usr/bin/env python3" "$out/share/${pname}/bazarr.py"
42 chmod +x "$out/share/${pname}/bazarr.py"
43
44 makeWrapper "$out/share/${pname}/bazarr.py" \
45 "$out/bin/bazarr" \
46 --suffix PATH : ${lib.makeBinPath runtimeProgDeps}
47
48 runHook postInstall
49 '';
50
51 passthru.tests = {
52 smoke-test = nixosTests.bazarr;
53 };
54
55 meta = with lib; {
56 description = "Subtitle manager for Sonarr and Radarr";
57 homepage = "https://www.bazarr.media/";
58 sourceProvenance = with sourceTypes; [ binaryNativeCode ];
59 license = licenses.gpl3Only;
60 maintainers = with maintainers; [ d-xo ];
61 mainProgram = "bazarr";
62 platforms = platforms.all;
63 };
64}