about summary refs log tree commit diff
path: root/pkgs/by-name/sa/sabnzbd/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/sa/sabnzbd/package.nix')
-rw-r--r--pkgs/by-name/sa/sabnzbd/package.nix89
1 files changed, 89 insertions, 0 deletions
diff --git a/pkgs/by-name/sa/sabnzbd/package.nix b/pkgs/by-name/sa/sabnzbd/package.nix
new file mode 100644
index 0000000000000..9bcfe9b0ec4f5
--- /dev/null
+++ b/pkgs/by-name/sa/sabnzbd/package.nix
@@ -0,0 +1,89 @@
+{ lib, stdenv
+, coreutils
+, fetchFromGitHub
+, python3
+, par2cmdline-turbo
+, unzip
+, unrar
+, p7zip
+, util-linux
+, makeWrapper
+, nixosTests
+}:
+
+let
+  pythonEnv = python3.withPackages(ps: with ps; [
+    apprise
+    babelfish
+    cffi
+    chardet
+    cheetah3
+    cheroot
+    cherrypy
+    configobj
+    cryptography
+    feedparser
+    guessit
+    jaraco-classes
+    jaraco-collections
+    jaraco-context
+    jaraco-functools
+    jaraco-text
+    more-itertools
+    notify2
+    orjson
+    portend
+    puremagic
+    pycparser
+    pysocks
+    python-dateutil
+    pytz
+    rebulk
+    sabctools
+    sabyenc3
+    sgmllib3k
+    six
+    tempora
+    zc-lockfile
+  ]);
+  path = lib.makeBinPath [ coreutils par2cmdline-turbo unrar unzip p7zip util-linux ];
+in stdenv.mkDerivation rec {
+  version = "4.3.0";
+  pname = "sabnzbd";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-2zRhDFKbWq4JA7XE5/VFbfkN2ZQcqcuqGD5kjHmeXUA=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ pythonEnv ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    cp -R * $out/
+    mkdir $out/bin
+    echo "${pythonEnv}/bin/python $out/SABnzbd.py \$*" > $out/bin/sabnzbd
+    chmod +x $out/bin/sabnzbd
+    wrapProgram $out/bin/sabnzbd --set PATH ${path}
+
+    runHook postInstall
+  '';
+
+  passthru.tests = {
+    smoke-test = nixosTests.sabnzbd;
+  };
+
+  meta = with lib; {
+    description = "Usenet NZB downloader, par2 repairer and auto extracting server";
+    homepage = "https://sabnzbd.org";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = with lib.maintainers; [ jojosch adamcstephens ];
+    mainProgram = "sabnzbd";
+  };
+}