about summary refs log tree commit diff
diff options
context:
space:
mode:
authorSilvan Mosberger <infinisil@icloud.com>2019-03-08 16:52:40 +0100
committerGitHub <noreply@github.com>2019-03-08 16:52:40 +0100
commita540993d62cd7546fabb605f5983ebf3d3dd6db3 (patch)
tree59e031076eb8dcc5fa91b02312e5bdccc92c81d9
parent21c6592a421507ae0ecaf0b1df28b7f6f7b80515 (diff)
parent8b3ffebcdcaf169854b953541a12d0fc075102ea (diff)
downloadnixlib-a540993d62cd7546fabb605f5983ebf3d3dd6db3.tar
nixlib-a540993d62cd7546fabb605f5983ebf3d3dd6db3.tar.gz
nixlib-a540993d62cd7546fabb605f5983ebf3d3dd6db3.tar.bz2
nixlib-a540993d62cd7546fabb605f5983ebf3d3dd6db3.tar.lz
nixlib-a540993d62cd7546fabb605f5983ebf3d3dd6db3.tar.xz
nixlib-a540993d62cd7546fabb605f5983ebf3d3dd6db3.tar.zst
nixlib-a540993d62cd7546fabb605f5983ebf3d3dd6db3.zip
Merge pull request #56171 from bachp/tautulli
tautulli/plexpy: 1.4.25 -> 2.1.26 (renamed)
-rw-r--r--nixos/modules/module-list.nix2
-rw-r--r--nixos/modules/rename.nix3
-rw-r--r--nixos/modules/services/misc/tautulli.nix (renamed from nixos/modules/services/misc/plexpy.nix)40
-rw-r--r--pkgs/servers/plexpy/default.nix41
-rw-r--r--pkgs/servers/tautulli/default.nix55
-rw-r--r--pkgs/top-level/aliases.nix1
-rw-r--r--pkgs/top-level/all-packages.nix2
7 files changed, 79 insertions, 65 deletions
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 6bccd253500a..0accee36034c 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -427,7 +427,7 @@
   ./services/misc/parsoid.nix
   ./services/misc/phd.nix
   ./services/misc/plex.nix
-  ./services/misc/plexpy.nix
+  ./services/misc/tautulli.nix
   ./services/misc/pykms.nix
   ./services/misc/radarr.nix
   ./services/misc/redmine.nix
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 1e6557e1f0e0..7fb58a2b8002 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -186,6 +186,9 @@ with lib;
     # parsoid
     (mkRemovedOptionModule [ "services" "parsoid" "interwikis" ] [ "services" "parsoid" "wikis" ])
 
+    # plexpy / tautulli
+    (mkRenamedOptionModule [ "services" "plexpy" ] [ "services" "tautulli" ])
+
     # piwik was renamed to matomo
     (mkRenamedOptionModule [ "services" "piwik" "enable" ] [ "services" "matomo" "enable" ])
     (mkRenamedOptionModule [ "services" "piwik" "webServerUser" ] [ "services" "matomo" "webServerUser" ])
diff --git a/nixos/modules/services/misc/plexpy.nix b/nixos/modules/services/misc/tautulli.nix
index 2a589fdfb27f..50e450366478 100644
--- a/nixos/modules/services/misc/plexpy.nix
+++ b/nixos/modules/services/misc/tautulli.nix
@@ -3,73 +3,69 @@
 with lib;
 
 let
-  cfg = config.services.plexpy;
+  cfg = config.services.tautulli;
 in
 {
   options = {
-    services.plexpy = {
-      enable = mkEnableOption "PlexPy Plex Monitor";
+    services.tautulli = {
+      enable = mkEnableOption "Tautulli Plex Monitor";
 
       dataDir = mkOption {
         type = types.str;
         default = "/var/lib/plexpy";
-        description = "The directory where PlexPy stores its data files.";
+        description = "The directory where Tautulli stores its data files.";
       };
 
       configFile = mkOption {
         type = types.str;
         default = "/var/lib/plexpy/config.ini";
-        description = "The location of PlexPy's config file.";
+        description = "The location of Tautulli's config file.";
       };
 
       port = mkOption {
         type = types.int;
         default = 8181;
-        description = "TCP port where PlexPy listens.";
+        description = "TCP port where Tautulli listens.";
       };
 
       user = mkOption {
         type = types.str;
         default = "plexpy";
-        description = "User account under which PlexPy runs.";
+        description = "User account under which Tautulli runs.";
       };
 
       group = mkOption {
         type = types.str;
         default = "nogroup";
-        description = "Group under which PlexPy runs.";
+        description = "Group under which Tautulli runs.";
       };
 
       package = mkOption {
         type = types.package;
-        default = pkgs.plexpy;
-        defaultText = "pkgs.plexpy";
+        default = pkgs.tautulli;
+        defaultText = "pkgs.tautulli";
         description = ''
-          The PlexPy package to use.
+          The Tautulli package to use.
         '';
       };
     };
   };
 
   config = mkIf cfg.enable {
-    systemd.services.plexpy = {
-      description = "PlexPy Plex Monitor";
+    systemd.tmpfiles.rules = [
+      "d '${cfg.dataDir}' - ${cfg.user} ${cfg.group} - -"
+    ];
+
+    systemd.services.tautulli = {
+      description = "Tautulli Plex Monitor";
       after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
-      preStart = ''
-        test -d "${cfg.dataDir}" || {
-          echo "Creating initial PlexPy data directory in \"${cfg.dataDir}\"."
-          mkdir -p "${cfg.dataDir}"
-          chown ${cfg.user}:${cfg.group} "${cfg.dataDir}"
-        }
-     '';
       serviceConfig = {
         Type = "simple";
         User = cfg.user;
         Group = cfg.group;
-        PermissionsStartOnly = "true";
         GuessMainPID = "false";
-        ExecStart = "${cfg.package}/bin/plexpy --datadir ${cfg.dataDir} --config ${cfg.configFile} --port ${toString cfg.port} --pidfile ${cfg.dataDir}/plexpy.pid --nolaunch";
+        ExecStart = "${cfg.package}/bin/tautulli --datadir ${cfg.dataDir} --config ${cfg.configFile} --port ${toString cfg.port} --pidfile ${cfg.dataDir}/tautulli.pid --nolaunch";
         Restart = "on-failure";
       };
     };
diff --git a/pkgs/servers/plexpy/default.nix b/pkgs/servers/plexpy/default.nix
deleted file mode 100644
index 2875ecc52404..000000000000
--- a/pkgs/servers/plexpy/default.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{stdenv, fetchFromGitHub, python}:
-
-stdenv.mkDerivation rec {
-  version = "1.4.25";
-  pname = "plexpy";
-  name = "${pname}-${version}";
-
-  src = fetchFromGitHub {
-    owner = "JonnyWong16";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0a4ynrfamlwkgqil4n61v47p21czxpjdzg0mias4kdjam2nnwnjx";
-  };
-
-  buildPhase = ":";
-
-  installPhase = ''
-    mkdir -p $out
-    cp -R * $out/
-
-    # Remove superfluous Python checks from main script;
-    # prepend shebang
-    echo "#!${python.interpreter}" > $out/PlexPy.py
-    tail -n +7 PlexPy.py >> $out/PlexPy.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/plexpy
-    echo "$out/PlexPy.py \$*" >> $out/bin/plexpy
-    chmod +x $out/bin/plexpy
-  '';
-
-  meta  = with stdenv.lib; {
-    description = "A Python based monitoring and tracking tool for Plex Media Server.";
-    homepage = http://jonnywong16.github.io/plexpy/;
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with stdenv.lib.maintainers; [ csingley ];
-  };
-}
diff --git a/pkgs/servers/tautulli/default.nix b/pkgs/servers/tautulli/default.nix
new file mode 100644
index 000000000000..5dcd958b799f
--- /dev/null
+++ b/pkgs/servers/tautulli/default.nix
@@ -0,0 +1,55 @@
+{stdenv, fetchFromGitHub, python }:
+
+stdenv.mkDerivation rec {
+  version = "2.1.26";
+  pname = "Tautulli";
+  name = "${pname}-${version}";
+
+  pythonPath = [ python.pkgs.setuptools ];
+  buildInputs = [ python.pkgs.setuptools ];
+  nativeBuildInputs = [ python.pkgs.wrapPython ];
+
+  src = fetchFromGitHub {
+    owner = "Tautulli";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1gq13dazbqbzdb0wfw87maprr9nva357zdj8x0lfrbasi3h5522q";
+  };
+
+  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 ];
+  };
+}
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 59eb707c8af5..96396acb9e62 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -234,6 +234,7 @@ mapAliases ({
   pidginwindowmerge = pidgin-window-merge; # added 2018-01-08
   piwik = matomo; # added 2018-01-16
   pltScheme = racket; # just to be sure
+  plexpy = tautulli; # plexpy got renamed to tautulli, added 2019-02-22
   pmtools = acpica-tools; # added 2018-11-01
   poppler_qt5 = libsForQt5.poppler;  # added 2015-12-19
   postgresql94 = postgresql_9_4;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 6f25783a71d7..6414f0023224 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -4928,7 +4928,7 @@ in
 
   plex = callPackage ../servers/plex { };
 
-  plexpy = callPackage ../servers/plexpy { python = python2; };
+  tautulli = callPackage ../servers/tautulli { python = python2; };
 
   ploticus = callPackage ../tools/graphics/ploticus {
     libpng = libpng12;