diff --git a/mopidy/__main__.py b/mopidy/__main__.py index df5f99a4..aa0c751e 100644 --- a/mopidy/__main__.py +++ b/mopidy/__main__.py @@ -51,6 +51,7 @@ def main(): logging_initialized = True create_file_structures() + check_old_locations() installed_extensions = ext.load_extensions() @@ -73,7 +74,6 @@ def main(): proxied_config = config_lib.Proxy(config) log.setup_log_levels(proxied_config) - check_old_locations() ext.register_gstreamer_elements(enabled_extensions) # Anything that wants to exit after this point must use @@ -87,24 +87,25 @@ def main(): raise -def start(config, enabled_extensions): - loop = gobject.MainLoop() - try: - audio = setup_audio(config) - backends = setup_backends(config, enabled_extensions, audio) - core = setup_core(audio, backends) - setup_frontends(config, enabled_extensions, core) - loop.run() - except KeyboardInterrupt: - logger.info('Interrupted. Exiting...') - return - finally: - loop.quit() - stop_frontends(enabled_extensions) - stop_core() - stop_backends(enabled_extensions) - stop_audio() - process.stop_remaining_actors() +def create_file_structures(): + path.get_or_create_dir(b'$XDG_DATA_DIR/mopidy') + path.get_or_create_file(b'$XDG_CONFIG_DIR/mopidy/mopidy.conf') + + +def check_old_locations(): + dot_mopidy_dir = path.expand_path(b'~/.mopidy') + if os.path.isdir(dot_mopidy_dir): + logger.warning( + 'Old Mopidy dot dir found at %s. Please migrate your config to ' + 'the ini-file based config format. See release notes for further ' + 'instructions.', dot_mopidy_dir) + + old_settings_file = path.expand_path(b'$XDG_CONFIG_DIR/mopidy/settings.py') + if os.path.isfile(old_settings_file): + logger.warning( + 'Old Mopidy settings file found at %s. Please migrate your ' + 'config to the ini-file based config format. See release notes ' + 'for further instructions.', old_settings_file) def log_extension_info(all_extensions, enabled_extensions): @@ -126,28 +127,27 @@ def check_config_errors(errors): sys.exit(1) -def check_old_locations(): - dot_mopidy_dir = path.expand_path(b'~/.mopidy') - if os.path.isdir(dot_mopidy_dir): - logger.warning( - 'Old Mopidy dot dir found at %s. Please migrate your config to ' - 'the ini-file based config format. See release notes for further ' - 'instructions.', dot_mopidy_dir) - - old_settings_file = path.expand_path(b'$XDG_CONFIG_DIR/mopidy/settings.py') - if os.path.isfile(old_settings_file): - logger.warning( - 'Old Mopidy settings file found at %s. Please migrate your ' - 'config to the ini-file based config format. See release notes ' - 'for further instructions.', old_settings_file) +def start(config, extensions): + loop = gobject.MainLoop() + try: + audio = start_audio(config) + backends = start_backends(config, extensions, audio) + core = start_core(audio, backends) + start_frontends(config, extensions, core) + loop.run() + except KeyboardInterrupt: + logger.info('Interrupted. Exiting...') + return + finally: + loop.quit() + stop_frontends(extensions) + stop_core() + stop_backends(extensions) + stop_audio() + process.stop_remaining_actors() -def create_file_structures(): - path.get_or_create_dir(b'$XDG_DATA_DIR/mopidy') - path.get_or_create_file(b'$XDG_CONFIG_DIR/mopidy/mopidy.conf') - - -def setup_audio(config): +def start_audio(config): logger.info('Starting Mopidy audio') return Audio.start(config=config).proxy() @@ -157,7 +157,7 @@ def stop_audio(): process.stop_actors_by_class(Audio) -def setup_backends(config, extensions, audio): +def start_backends(config, extensions, audio): backend_classes = [] for extension in extensions: backend_classes.extend(extension.get_backend_classes()) @@ -181,7 +181,7 @@ def stop_backends(extensions): process.stop_actors_by_class(backend_class) -def setup_core(audio, backends): +def start_core(audio, backends): logger.info('Starting Mopidy core') return Core.start(audio=audio, backends=backends).proxy() @@ -191,7 +191,7 @@ def stop_core(): process.stop_actors_by_class(Core) -def setup_frontends(config, extensions, core): +def start_frontends(config, extensions, core): frontend_classes = [] for extension in extensions: frontend_classes.extend(extension.get_frontend_classes())