Save all settings at once.
Removed log dir
This commit is contained in:
1 parent
e1d6701722
commit
09135e1738
6 files changed
+44
-19
No files matched your search
+1
-1
@@ -14,7 +14,7 @@ base_path = dirname(os.path.abspath(__file__))
|
|||||||
sys.path.insert(0, os.path.join(base_path, 'libs'))
|
sys.path.insert(0, os.path.join(base_path, 'libs'))
|
||||||
|
|
||||||
from couchpotato.core.logger import CPLog
|
from couchpotato.core.logger import CPLog
|
||||||
log = CPLog(__name__);
|
log = CPLog(__name__)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from couchpotato import cli
|
from couchpotato import cli
|
||||||
|
|||||||
+24
-7
@@ -1,4 +1,5 @@
|
|||||||
from couchpotato import app
|
from couchpotato import app
|
||||||
|
from couchpotato.core.logger import CPLog
|
||||||
from couchpotato.settings import Settings
|
from couchpotato.settings import Settings
|
||||||
from logging import handlers
|
from logging import handlers
|
||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
@@ -12,16 +13,26 @@ def cmd_couchpotato(base_path):
|
|||||||
|
|
||||||
# Options
|
# Options
|
||||||
parser = OptionParser('usage: %prog [options]')
|
parser = OptionParser('usage: %prog [options]')
|
||||||
parser.add_option('-l', '--logdir', dest = 'logdir', default = 'logs', help = 'log DIRECTORY (default ./logs)')
|
parser.add_option('-s', '--datadir', dest = 'data_dir', default = base_path, help = 'Absolute or ~/ path, where settings/logs/database data is saved (default ./)')
|
||||||
parser.add_option('-t', '--test', '--debug', action = 'store_true', dest = 'debug', help = 'Debug mode')
|
parser.add_option('-t', '--test', '--debug', action = 'store_true', dest = 'debug', help = 'Debug mode')
|
||||||
parser.add_option('-q', '--quiet', action = 'store_true', dest = 'quiet', help = "Don't log to console")
|
parser.add_option('-q', '--quiet', action = 'store_true', dest = 'quiet', help = "Don't log to console")
|
||||||
parser.add_option('-d', '--daemon', action = 'store_true', dest = 'daemonize', help = 'Daemonize the app')
|
parser.add_option('-d', '--daemon', action = 'store_true', dest = 'daemonize', help = 'Daemonize the app')
|
||||||
|
|
||||||
(options, args) = parser.parse_args(sys.argv[1:])
|
(options, args) = parser.parse_args(sys.argv[1:])
|
||||||
|
|
||||||
|
# Create data dir if needed
|
||||||
|
if not os.path.isdir(options.data_dir):
|
||||||
|
options.data_dir = os.path.expanduser(options.data_dir)
|
||||||
|
os.makedirs(options.data_dir)
|
||||||
|
|
||||||
|
# Create logging dir
|
||||||
|
log_dir = os.path.join(options.data_dir, 'logs');
|
||||||
|
if not os.path.isdir(log_dir):
|
||||||
|
os.mkdir(log_dir)
|
||||||
|
|
||||||
|
|
||||||
# Register settings
|
# Register settings
|
||||||
settings = Settings(os.path.join(base_path, 'settings.conf'))
|
settings = Settings(os.path.join(options.data_dir, 'settings.conf'))
|
||||||
debug = options.debug or settings.get('debug', default = False)
|
debug = options.debug or settings.get('debug', default = False)
|
||||||
|
|
||||||
|
|
||||||
@@ -38,19 +49,25 @@ def cmd_couchpotato(base_path):
|
|||||||
logger.addHandler(hdlr)
|
logger.addHandler(hdlr)
|
||||||
|
|
||||||
# To file
|
# To file
|
||||||
hdlr2 = handlers.RotatingFileHandler(os.path.join(options.logdir, 'CouchPotato.log'), 'a', 5000000, 4)
|
hdlr2 = handlers.RotatingFileHandler(os.path.join(log_dir, 'CouchPotato.log'), 'a', 5000000, 4)
|
||||||
hdlr2.setFormatter(formatter)
|
hdlr2.setFormatter(formatter)
|
||||||
logger.addHandler(hdlr2)
|
logger.addHandler(hdlr2)
|
||||||
|
|
||||||
|
|
||||||
# Load config
|
# Start logging
|
||||||
|
log = CPLog(__name__)
|
||||||
|
log.debug('Started with params %s' % args)
|
||||||
|
|
||||||
|
|
||||||
|
# Load configs
|
||||||
from couchpotato.settings.loader import SettingsLoader
|
from couchpotato.settings.loader import SettingsLoader
|
||||||
sl = SettingsLoader(root = base_path)
|
sl = SettingsLoader(root = base_path)
|
||||||
sl.loadConfig('couchpotato', 'core')
|
sl.addConfig('couchpotato', 'core')
|
||||||
|
sl.run()
|
||||||
|
|
||||||
|
|
||||||
# Create app
|
# Create app
|
||||||
app
|
|
||||||
app.host = settings.get('host', default = '0.0.0.0')
|
app.host = settings.get('host', default = '0.0.0.0')
|
||||||
app.port = settings.get('port', default = 5000)
|
app.port = settings.get('port', default = 5000)
|
||||||
app.run(debug = debug)
|
app.debug = debug
|
||||||
|
app.run()
|
||||||
@@ -1,4 +1,3 @@
|
|||||||
from couchpotato import app
|
|
||||||
import logging
|
import logging
|
||||||
|
|
||||||
class CPLog():
|
class CPLog():
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ class Settings():
|
|||||||
for option, value in options.iteritems():
|
for option, value in options.iteritems():
|
||||||
self.setDefault(section_name, option, value)
|
self.setDefault(section_name, option, value)
|
||||||
|
|
||||||
log.debug('Registered defaults %s: %s' % (section_name, options))
|
log.debug('Defaults for "%s": %s' % (section_name, options))
|
||||||
self.on_register.send(self)
|
self.on_register.send(self)
|
||||||
|
|
||||||
if save:
|
if save:
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ log = CPLog(__name__)
|
|||||||
|
|
||||||
class SettingsLoader:
|
class SettingsLoader:
|
||||||
|
|
||||||
|
configs = {}
|
||||||
|
|
||||||
def __init__(self, root = ''):
|
def __init__(self, root = ''):
|
||||||
|
|
||||||
self.settings_register = signal('settings.register')
|
self.settings_register = signal('settings.register')
|
||||||
@@ -18,22 +20,26 @@ class SettingsLoader:
|
|||||||
}
|
}
|
||||||
|
|
||||||
for type, tuple in self.paths.iteritems():
|
for type, tuple in self.paths.iteritems():
|
||||||
self.loadFromDir(tuple[0], tuple[1])
|
self.addFromDir(tuple[0], tuple[1])
|
||||||
|
|
||||||
def loadFromDir(self, module, dir):
|
def run(self):
|
||||||
did_save = 0
|
did_save = 0
|
||||||
for file in glob.glob(os.path.join(dir, '*')):
|
|
||||||
plugin_name = os.path.basename(file)
|
for module, plugin_name in self.configs.iteritems():
|
||||||
plugin_dir = os.path.join(dir, plugin_name)
|
did_save += self.loadConfig(module, plugin_name, save = False)
|
||||||
if os.path.isdir(plugin_dir):
|
|
||||||
did_save += self.loadConfig(module, plugin_name, save = False)
|
|
||||||
|
|
||||||
if did_save:
|
if did_save:
|
||||||
self.settings_save.send()
|
self.settings_save.send()
|
||||||
|
|
||||||
|
def addFromDir(self, module, dir):
|
||||||
|
|
||||||
|
for file in glob.glob(os.path.join(dir, '*')):
|
||||||
|
name = os.path.basename(file)
|
||||||
|
if os.path.isdir(os.path.join(dir, name)):
|
||||||
|
self.addConfig(module, name)
|
||||||
|
|
||||||
def loadConfig(self, module, name, save = True):
|
def loadConfig(self, module, name, save = True):
|
||||||
module_name = '%s.%s' % (module, name)
|
module_name = '%s.%s' % (module, name)
|
||||||
print module_name
|
|
||||||
try:
|
try:
|
||||||
m = getattr(self.loadModule(module_name), name)
|
m = getattr(self.loadModule(module_name), name)
|
||||||
(section, options) = m.config
|
(section, options) = m.config
|
||||||
@@ -42,6 +48,10 @@ class SettingsLoader:
|
|||||||
return True
|
return True
|
||||||
except Exception, e:
|
except Exception, e:
|
||||||
log.error("Failed loading config for %s: %s" % (name, e))
|
log.error("Failed loading config for %s: %s" % (name, e))
|
||||||
|
return False
|
||||||
|
|
||||||
|
def addConfig(self, module, name):
|
||||||
|
self.configs[module] = name
|
||||||
|
|
||||||
def loadModule(self, name):
|
def loadModule(self, name):
|
||||||
try:
|
try:
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
|
|
||||||
Reference in new issue
Block a user