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