diff --git a/mopidy/__main__.py b/mopidy/__main__.py index 044e6ec6..8aee976b 100644 --- a/mopidy/__main__.py +++ b/mopidy/__main__.py @@ -1,46 +1,14 @@ -import logging -import optparse import os import sys +# Add ../ to the path so we can run Mopidy from a Git checkout without +# installing it on the system. sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '../'))) -from mopidy import get_version, settings, SettingsError from mopidy.core import CoreProcess -from mopidy.utils.log import setup_logging -from mopidy.utils.path import get_or_create_folder -from mopidy.utils.settings import list_settings_optparse_callback - -logger = logging.getLogger('mopidy.main') - -def main(): - options = parse_options() - setup_logging(options.verbosity_level, options.dump) - - logger.info('-- Starting Mopidy --') - - get_or_create_folder('~/.mopidy/') - settings.validate() - - # Explictly call run instead of start, so it runs in this process - CoreProcess().run() - -def parse_options(): - parser = optparse.OptionParser(version='Mopidy %s' % get_version()) - parser.add_option('-q', '--quiet', - action='store_const', const=0, dest='verbosity_level', - help='less output (warning level)') - parser.add_option('-v', '--verbose', - action='store_const', const=2, dest='verbosity_level', - help='more output (debug level)') - parser.add_option('--dump', - action='store_true', dest='dump', - help='dump debug log to file') - parser.add_option('--list-settings', - action='callback', callback=list_settings_optparse_callback, - help='list current settings') - return parser.parse_args()[0] if __name__ == '__main__': - main() + # Explictly call run() instead of start(), since we don't need to start + # another process. + CoreProcess().run() diff --git a/mopidy/core.py b/mopidy/core.py index b45a9b96..d823bfa5 100644 --- a/mopidy/core.py +++ b/mopidy/core.py @@ -1,9 +1,13 @@ import logging import multiprocessing +import optparse -from mopidy import settings +from mopidy import get_version, settings from mopidy.utils import get_class +from mopidy.utils.log import setup_logging +from mopidy.utils.path import get_or_create_folder from mopidy.utils.process import BaseProcess, unpickle_connection +from mopidy.utils.settings import list_settings_optparse_callback logger = logging.getLogger('mopidy.core') @@ -11,21 +15,48 @@ class CoreProcess(BaseProcess): def __init__(self): super(CoreProcess, self).__init__(name='CoreProcess') self.core_queue = multiprocessing.Queue() + self.options = self.parse_options() self.output_queue = None self.backend = None self.frontend = None + def parse_options(self): + parser = optparse.OptionParser(version='Mopidy %s' % get_version()) + parser.add_option('-q', '--quiet', + action='store_const', const=0, dest='verbosity_level', + help='less output (warning level)') + parser.add_option('-v', '--verbose', + action='store_const', const=2, dest='verbosity_level', + help='more output (debug level)') + parser.add_option('--dump', + action='store_true', dest='dump', + help='dump debug log to file') + parser.add_option('--list-settings', + action='callback', callback=list_settings_optparse_callback, + help='list current settings') + return parser.parse_args()[0] + def run_inside_try(self): + logger.info(u'-- Starting Mopidy --') self.setup() while True: message = self.core_queue.get() self.process_message(message) def setup(self): + self.setup_logging() + self.setup_settings() self.output_queue = self.setup_output(self.core_queue) self.backend = self.setup_backend(self.core_queue, self.output_queue) self.frontend = self.setup_frontend(self.core_queue, self.backend) + def setup_logging(self): + setup_logging(self.options.verbosity_level, self.options.dump) + + def setup_settings(self): + get_or_create_folder('~/.mopidy/') + settings.validate() + def setup_output(self, core_queue): output_queue = multiprocessing.Queue() get_class(settings.OUTPUT)(core_queue, output_queue)