]> kaliko git repositories - mpd-sima.git/blobdiff - sima/launch.py
Some cleanup, CLI/bash completion/Doc improvements
[mpd-sima.git] / sima / launch.py
index 1ff6c94c4b94a2d91a102fd06256d74075f39105..4cc60e3be17993ad13536be4f5b92275816c9bc2 100644 (file)
@@ -1,5 +1,5 @@
 # -*- 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
 #
@@ -54,6 +54,7 @@ def load_plugins(sima, source):
     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())
@@ -71,23 +72,20 @@ def load_plugins(sima, source):
             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')
@@ -100,6 +98,10 @@ def start(sopt, restart=False):
             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)
 
@@ -107,14 +109,15 @@ def start(sopt, restart=False):
     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')