about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/tautulli/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/tautulli/default.nix')
-rw-r--r--nixpkgs/pkgs/servers/tautulli/default.nix54
1 files changed, 54 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/tautulli/default.nix b/nixpkgs/pkgs/servers/tautulli/default.nix
new file mode 100644
index 000000000000..ff2f993ecc1c
--- /dev/null
+++ b/nixpkgs/pkgs/servers/tautulli/default.nix
@@ -0,0 +1,54 @@
+{stdenv, fetchFromGitHub, python }:
+
+stdenv.mkDerivation rec {
+  version = "2.2.4";
+  pname = "Tautulli";
+
+  pythonPath = [ python.pkgs.setuptools ];
+  buildInputs = [ python.pkgs.setuptools ];
+  nativeBuildInputs = [ python.pkgs.wrapPython ];
+
+  src = fetchFromGitHub {
+    owner = "Tautulli";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0yg7r7yscx6jbs1lnl9nbax3v9r6ppvhr4igdm3gbvd2803j8fs7";
+  };
+
+  buildPhase = ":";
+
+  installPhase = ''
+    mkdir -p $out
+    cp -R * $out/
+
+    # Remove the PlexPy.py compatibility file as it won't work after wrapping.
+    # We still have the plexpy executable in bin for compatibility.
+    rm $out/PlexPy.py
+
+    # Remove superfluous Python checks from main script;
+    # prepend shebang
+    echo "#!${python.interpreter}" > $out/Tautulli.py
+    tail -n +7 Tautulli.py >> $out/Tautulli.py
+
+
+    mkdir $out/bin
+    # Can't just symlink to the main script, since it uses __file__ to
+    # import bundled packages and manage the service
+    echo "#!/bin/bash" > $out/bin/tautulli
+    echo "$out/Tautulli.py \$*" >> $out/bin/tautulli
+    chmod +x $out/bin/tautulli
+
+    # Creat backwards compatibility symlink to bin/plexpy
+    ln -s $out/bin/tautulli $out/bin/plexpy
+
+    wrapPythonProgramsIn "$out" "$out $pythonPath"
+  '';
+
+  meta  = with stdenv.lib; {
+    description = "A Python based monitoring and tracking tool for Plex Media Server.";
+    homepage = "https://tautulli.com/";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with stdenv.lib.maintainers; [ csingley ];
+  };
+}