diff --git a/plexpy/__init__.py b/plexpy/__init__.py index 20d2e015..0db15980 100644 --- a/plexpy/__init__.py +++ b/plexpy/__init__.py @@ -160,7 +160,11 @@ def initialize(config_file): global UMASK global _UPDATE - CONFIG = config.Config(config_file) + try: + CONFIG = config.Config(config_file) + except: + raise SystemExit("Unable to initialize Tautulli due to a corrupted config file. Exiting...") + CONFIG_FILE = config_file assert CONFIG is not None diff --git a/plexpy/config.py b/plexpy/config.py index e8605d2c..32a4f953 100644 --- a/plexpy/config.py +++ b/plexpy/config.py @@ -24,7 +24,7 @@ import shutil import time import threading -from configobj import ConfigObj +from configobj import ConfigObj, ParseError import plexpy if plexpy.PYTHON2: @@ -228,12 +228,16 @@ def import_tautulli_config(config=None, backup=False): logger.error("Tautulli Config :: Failed to import Tautulli config: failed to create config backup") return False + # Create a new Config object with the imported config file + try: + imported_config = Config(config, is_import=True) + except: + logger.error("Tautulli Config :: Failed to import Tautulli config: error reading imported config file") + return False + logger.info("Tautulli Config :: Importing Tautulli config '%s'...", config) set_is_importing(True) - # Create a new Config object with the imported config file - imported_config = Config(config, is_import=True) - # Remove keys that should not be imported for key in _DO_NOT_IMPORT_KEYS: delattr(imported_config, key) @@ -298,7 +302,12 @@ class Config(object): def __init__(self, config_file, is_import=False): """ Initialize the config with values from a file """ self._config_file = config_file - self._config = ConfigObj(self._config_file, encoding='utf-8') + try: + self._config = ConfigObj(self._config_file, encoding='utf-8') + except ParseError as e: + logger.error("Tautulli Config :: Error reading configuration file: %s", e) + raise + for key in _CONFIG_DEFINITIONS: self.check_setting(key) if not is_import: