Move config parse to runner
This commit is contained in:
1 parent
5d70369df1
commit
adc755dbd5
2 files changed
+40
-45
No files matched your search
+39
-26
@@ -15,19 +15,8 @@ base_path = dirname(os.path.abspath(__file__))
|
|||||||
# Insert local directories into path
|
# Insert local directories into path
|
||||||
sys.path.insert(0, os.path.join(base_path, 'libs'))
|
sys.path.insert(0, os.path.join(base_path, 'libs'))
|
||||||
|
|
||||||
|
from couchpotato.environment import Env
|
||||||
from couchpotato.core.helpers.variable import getDataDir
|
from couchpotato.core.helpers.variable import getDataDir
|
||||||
data_dir = getDataDir()
|
|
||||||
|
|
||||||
# Logging
|
|
||||||
from couchpotato.core.logger import CPLog
|
|
||||||
log = CPLog(__name__)
|
|
||||||
|
|
||||||
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s', '%H:%M:%S')
|
|
||||||
hdlr = handlers.RotatingFileHandler(os.path.join(data_dir, 'error.log'), 'a', 500000, 10)
|
|
||||||
hdlr.setLevel(logging.CRITICAL)
|
|
||||||
hdlr.setFormatter(formatter)
|
|
||||||
log.logger.addHandler(hdlr)
|
|
||||||
|
|
||||||
|
|
||||||
class Loader(object):
|
class Loader(object):
|
||||||
|
|
||||||
@@ -39,6 +28,33 @@ class Loader(object):
|
|||||||
from couchpotato.runner import getOptions
|
from couchpotato.runner import getOptions
|
||||||
self.options = getOptions(base_path, sys.argv[1:])
|
self.options = getOptions(base_path, sys.argv[1:])
|
||||||
|
|
||||||
|
# Load settings
|
||||||
|
settings = Env.get('settings')
|
||||||
|
settings.setFile(self.options.config_file)
|
||||||
|
|
||||||
|
# Create data dir if needed
|
||||||
|
self.data_dir = os.path.expanduser(Env.setting('data_dir'))
|
||||||
|
if self.data_dir == '':
|
||||||
|
self.data_dir = getDataDir()
|
||||||
|
|
||||||
|
if not os.path.isdir(self.data_dir):
|
||||||
|
os.makedirs(self.data_dir)
|
||||||
|
|
||||||
|
# Create logging dir
|
||||||
|
self.log_dir = os.path.join(self.data_dir, 'logs');
|
||||||
|
if not os.path.isdir(self.log_dir):
|
||||||
|
os.mkdir(self.log_dir)
|
||||||
|
|
||||||
|
# Logging
|
||||||
|
from couchpotato.core.logger import CPLog
|
||||||
|
self.log = CPLog(__name__)
|
||||||
|
|
||||||
|
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s', '%H:%M:%S')
|
||||||
|
hdlr = handlers.RotatingFileHandler(os.path.join(self.log_dir, 'error.log'), 'a', 500000, 10)
|
||||||
|
hdlr.setLevel(logging.CRITICAL)
|
||||||
|
hdlr.setFormatter(formatter)
|
||||||
|
self.log.logger.addHandler(hdlr)
|
||||||
|
|
||||||
def addSignals(self):
|
def addSignals(self):
|
||||||
|
|
||||||
signal.signal(signal.SIGINT, self.onExit)
|
signal.signal(signal.SIGINT, self.onExit)
|
||||||
@@ -58,14 +74,8 @@ class Loader(object):
|
|||||||
|
|
||||||
self.addSignals()
|
self.addSignals()
|
||||||
|
|
||||||
try:
|
from couchpotato.runner import runCouchPotato
|
||||||
from couchpotato.runner import runCouchPotato
|
runCouchPotato(self.options, base_path, sys.argv[1:], data_dir = self.data_dir, log_dir = self.log_dir, Env = Env)
|
||||||
runCouchPotato(self.options, base_path, sys.argv[1:])
|
|
||||||
except SystemExit as errno:
|
|
||||||
if errno is 3:
|
|
||||||
raise
|
|
||||||
except:
|
|
||||||
raise
|
|
||||||
|
|
||||||
if self.do_restart:
|
if self.do_restart:
|
||||||
self.restart()
|
self.restart()
|
||||||
@@ -77,12 +87,12 @@ class Loader(object):
|
|||||||
if self.runAsDaemon():
|
if self.runAsDaemon():
|
||||||
self.daemon.delpid()
|
self.daemon.delpid()
|
||||||
except:
|
except:
|
||||||
log.critical(traceback.format_exc())
|
self.log.critical(traceback.format_exc())
|
||||||
|
|
||||||
args = [sys.executable] + [os.path.join(base_path, __file__)] + sys.argv[1:]
|
args = [sys.executable] + [os.path.join(base_path, __file__)] + sys.argv[1:]
|
||||||
subprocess.Popen(args)
|
subprocess.Popen(args)
|
||||||
except:
|
except:
|
||||||
log.critical(traceback.format_exc())
|
self.log.critical(traceback.format_exc())
|
||||||
|
|
||||||
def daemonize(self):
|
def daemonize(self):
|
||||||
|
|
||||||
@@ -94,7 +104,7 @@ class Loader(object):
|
|||||||
except SystemExit:
|
except SystemExit:
|
||||||
raise
|
raise
|
||||||
except:
|
except:
|
||||||
log.critical(traceback.format_exc())
|
self.log.critical(traceback.format_exc())
|
||||||
|
|
||||||
def runAsDaemon(self):
|
def runAsDaemon(self):
|
||||||
return self.options.daemon and self.options.pid_file
|
return self.options.daemon and self.options.pid_file
|
||||||
@@ -109,6 +119,9 @@ if __name__ == '__main__':
|
|||||||
pass
|
pass
|
||||||
except SystemExit:
|
except SystemExit:
|
||||||
raise
|
raise
|
||||||
except Exception as (errno, msg):
|
except Exception as (nr, msg):
|
||||||
if errno != 4:
|
if nr != 4:
|
||||||
log.critical(traceback.format_exc())
|
try:
|
||||||
|
l.log.critical(traceback.format_exc())
|
||||||
|
except:
|
||||||
|
print traceback.format_exc()
|
||||||
+1
-19
@@ -46,25 +46,7 @@ def cleanup():
|
|||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
|
||||||
|
|
||||||
def runCouchPotato(options, base_path, args, desktop = None):
|
def runCouchPotato(options, base_path, args, data_dir = None, log_dir = None, Env = None, desktop = None):
|
||||||
|
|
||||||
# Load settings
|
|
||||||
from couchpotato.environment import Env
|
|
||||||
settings = Env.get('settings')
|
|
||||||
settings.setFile(options.config_file)
|
|
||||||
|
|
||||||
# Create data dir if needed
|
|
||||||
data_dir = os.path.expanduser(Env.setting('data_dir'))
|
|
||||||
if data_dir == '':
|
|
||||||
data_dir = getDataDir()
|
|
||||||
|
|
||||||
if not os.path.isdir(data_dir):
|
|
||||||
os.makedirs(data_dir)
|
|
||||||
|
|
||||||
# Create logging dir
|
|
||||||
log_dir = os.path.join(data_dir, 'logs');
|
|
||||||
if not os.path.isdir(log_dir):
|
|
||||||
os.mkdir(log_dir)
|
|
||||||
|
|
||||||
try:
|
try:
|
||||||
locale.setlocale(locale.LC_ALL, "")
|
locale.setlocale(locale.LC_ALL, "")
|
||||||
|
|||||||
Reference in new issue
Block a user