diff --git a/Tautulli.py b/Tautulli.py index 4fa83243..069f771b 100755 --- a/Tautulli.py +++ b/Tautulli.py @@ -31,6 +31,7 @@ import datetime import locale import pytz import signal +import shutil import time import threading import tzlocal @@ -188,6 +189,15 @@ def main(): else: plexpy.DATA_DIR = plexpy.PROG_DIR + # Migrate Snap data dir + if plexpy.SNAP: + snap_common = os.environ['SNAP_COMMON'] + old_data_dir = os.path.join(snap_common, 'Tautulli') + if os.path.exists(old_data_dir) and os.listdir(old_data_dir): + plexpy.SNAP_MIGRATE = True + logger.info("Migrating Snap user data.") + shutil.move(old_data_dir, plexpy.DATA_DIR) + if args.config: config_file = args.config else: diff --git a/plexpy/__init__.py b/plexpy/__init__.py index a2168866..5dc671ad 100644 --- a/plexpy/__init__.py +++ b/plexpy/__init__.py @@ -99,6 +99,7 @@ PIDFILE = None NOFORK = False DOCKER = False SNAP = False +SNAP_MIGRATE = False FROZEN = False SCHED = None @@ -173,6 +174,18 @@ def initialize(config_file): if _INITIALIZED: return False + if SNAP_MIGRATE: + snap_common = os.environ['SNAP_COMMON'] + old_data_dir = os.path.join(snap_common, 'Tautulli') + CONFIG.HTTPS_CERT = CONFIG.HTTPS_CERT.replace(old_data_dir, DATA_DIR) + CONFIG.HTTPS_CERT_CHAIN = CONFIG.HTTPS_CERT_CHAIN.replace(old_data_dir, DATA_DIR) + CONFIG.HTTPS_KEY = CONFIG.HTTPS_KEY.replace(old_data_dir, DATA_DIR) + CONFIG.LOG_DIR = CONFIG.LOG_DIR.replace(old_data_dir, DATA_DIR) + CONFIG.BACKUP_DIR = CONFIG.BACKUP_DIR.replace(old_data_dir, DATA_DIR) + CONFIG.CACHE_DIR = CONFIG.CACHE_DIR.replace(old_data_dir, DATA_DIR) + CONFIG.EXPORT_DIR = CONFIG.EXPORT_DIR.replace(old_data_dir, DATA_DIR) + CONFIG.NEWSLETTER_DIR = CONFIG.NEWSLETTER_DIR.replace(old_data_dir, DATA_DIR) + if CONFIG.HTTP_PORT < 21 or CONFIG.HTTP_PORT > 65535: logger.warn("HTTP_PORT out of bounds: 21 < %s < 65535", CONFIG.HTTP_PORT) CONFIG.HTTP_PORT = 8181 diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 8905bca4..0bbdf713 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -51,8 +51,8 @@ apps: tautulli: command: > usr/bin/python3 $SNAP/Tautulli.py - --datadir $SNAP_COMMON/Tautulli - --config $SNAP_COMMON/Tautulli/config.ini + --datadir $SNAP_USER_COMMON/Tautulli + --config $SNAP_USER_COMMON/Tautulli/config.ini --quiet --nolaunch daemon: simple