# -*- coding: utf-8 -*-
-# Copyright (c) 2013, 2014 Jack Kaliko <kaliko@azylum.org>
+# Copyright (c) 2013, 2014, 2015 Jack Kaliko <kaliko@azylum.org>
#
# This file is part of sima
#
# local import
from . import core, info
from .lib.logger import set_logger
+from .lib.meta import Meta
from .lib.simadb import SimaDB
from .utils.config import ConfMan
from .utils.startopt import StartOpt
if not sima.config.get('sima', source):
return
logger = logging.getLogger('sima')
+ # TODO: Sanity check for "sima.config.get('sima', source)" ?
for plugin in sima.config.get('sima', source).split(','):
plugin = plugin.strip(' \n')
module = 'sima.plugins.{0}.{1}'.format(source, plugin.lower())
try:
mod_obj = __import__(module, fromlist=[plugin])
except ImportError as err:
- logger.error('Failed to load plugin\'s module: ' +
+ logger.error('Failed to load "{}" plugin\'s module: '.format(plugin) +
'{0} ({1})'.format(module, err))
sima.shutdown()
sys.exit(1)
sima.shutdown()
sys.exit(1)
logger.info('Loading {0} plugin: {name} ({doc})'.format(
- source, **plugin_obj.info()))
+ source, **plugin_obj.info()))
sima.register_plugin(plugin_obj)
def start(sopt, restart=False):
"""starts application
"""
- # set logger
- verbosity = sopt.options.get('verbosity', 'warning')
- logfile = sopt.options.get('logfile', None)
- set_logger(verbosity, logfile)
# loads configuration
config = ConfMan(sopt.options).config
- logfile = config.get('log', 'logfile')
+ # set logger
+ logger = logging.getLogger('sima')
+ logfile = config.get('log', 'logfile', fallback=None)
verbosity = config.get('log', 'verbosity')
set_logger(verbosity, logfile)
- logger = logging.getLogger('sima')
logger.debug('Command line say: {0}'.format(sopt.options))
# Create Database
db_file = config.get('sima', 'db_file')
logger.info('Done, bye...')
sys.exit(0)
+ if sopt.options.get('generate_config'):
+ config.write(sys.stdout, space_around_delimiters=True)
+ sys.exit(0)
+
logger.info('Starting...')
sima = core.Sima(config)
core_plugins = [History, MpdOptions, Uniq]
for cplgn in core_plugins:
logger.debug('Register core {name} ({doc})'.format(**cplgn.info()))
- sima.register_plugin(cplgn)
+ sima.register_core_plugin(cplgn)
+ logger.debug('core loaded, prioriy: {}'.format(' > '.join(map(str, sima.core_plugins))))
# Loading internal plugins
load_plugins(sima, 'internal')
# Loading contrib plugins
load_plugins(sima, 'contrib')
+ logger.info('plugins loaded, prioriy: {}'.format(' > '.join(map(str, sima.plugins))))
+ # Set use of MusicBrainzIdentifier
+ if not config.getboolean('sima', 'musicbrainzid'):
+ logger.info('Disabling MusicBrainzIdentifier')
+ Meta.use_mbid = False
# Run as a daemon
if config.getboolean('daemon', 'daemon'):