Move options parsing, logging setup and settings validation into CoreProcess
This commit is contained in:
parent
79729e653b
commit
976086ae65
@ -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()
|
||||
|
||||
@ -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)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user