diff --git a/Tautulli.py b/Tautulli.py index 8b5bdb44..7abde39d 100755 --- a/Tautulli.py +++ b/Tautulli.py @@ -25,6 +25,7 @@ sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), 'lib from future.builtins import str +import appdirs import argparse import datetime import locale @@ -49,12 +50,14 @@ def main(): """ # Fixed paths to Tautulli - if hasattr(sys, 'frozen'): + if hasattr(sys, 'frozen') and hasattr(sys, '_MEIPASS'): + plexpy.FROZEN = True plexpy.FULL_PATH = os.path.abspath(sys.executable) + plexpy.PROG_DIR = sys._MEIPASS else: plexpy.FULL_PATH = os.path.abspath(__file__) + plexpy.PROG_DIR = os.path.dirname(plexpy.FULL_PATH) - plexpy.PROG_DIR = os.path.dirname(plexpy.FULL_PATH) plexpy.ARGS = sys.argv[1:] # From sickbeard @@ -173,6 +176,8 @@ def main(): # Determine which data directory and config file to use if args.datadir: plexpy.DATA_DIR = args.datadir + elif plexpy.FROZEN: + plexpy.DATA_DIR = appdirs.user_data_dir("Tautulli", "Tautulli") else: plexpy.DATA_DIR = plexpy.PROG_DIR diff --git a/plexpy/__init__.py b/plexpy/__init__.py index 2cfa5846..330df4c4 100644 --- a/plexpy/__init__.py +++ b/plexpy/__init__.py @@ -99,6 +99,7 @@ CREATEPID = False PIDFILE = None NOFORK = False DOCKER = False +FROZEN = False SCHED = None SCHED_LOCK = threading.Lock() @@ -186,11 +187,18 @@ def initialize(config_file): logger.initLogger(console=not QUIET, log_dir=CONFIG.LOG_DIR if log_writable else None, verbose=VERBOSE) + if DOCKER: + build = '[Docker] ' + elif FROZEN: + build = '[Bundle] ' + else: + build = '' + logger.info("Starting Tautulli {}".format( common.RELEASE )) logger.info("{}{} {} ({}{})".format( - '[Docker] ' if DOCKER else '', common.PLATFORM, common.PLATFORM_RELEASE, common.PLATFORM_VERSION, + build, common.PLATFORM, common.PLATFORM_RELEASE, common.PLATFORM_VERSION, ' - {}'.format(common.PLATFORM_LINUX_DISTRO) if common.PLATFORM_LINUX_DISTRO else '' )) logger.info("{} (UTC{})".format( @@ -2237,7 +2245,10 @@ def shutdown(restart=False, update=False, checkout=False, reset=False): logger.info("Tautulli is restarting...") exe = sys.executable - args = [exe, FULL_PATH] + if FROZEN: + args = [exe] + else: + args = [exe, FULL_PATH] args += ARGS if '--nolaunch' not in args: args += ['--nolaunch']