main: Log and exit if {Backend,Frontend,Mixer}Error is raised
(cherry picked from commit 95bddf666b)
Conflicts:
mopidy/commands.py
This commit is contained in:
parent
44664f2796
commit
dbecbbcea0
@ -10,7 +10,7 @@ import glib
|
|||||||
|
|
||||||
import gobject
|
import gobject
|
||||||
|
|
||||||
from mopidy import config as config_lib
|
from mopidy import config as config_lib, exceptions
|
||||||
from mopidy.audio import Audio
|
from mopidy.audio import Audio
|
||||||
from mopidy.core import Core
|
from mopidy.core import Core
|
||||||
from mopidy.utils import deps, process, versioning
|
from mopidy.utils import deps, process, versioning
|
||||||
@ -270,9 +270,12 @@ class RootCommand(Command):
|
|||||||
core = self.start_core(audio, backends)
|
core = self.start_core(audio, backends)
|
||||||
self.start_frontends(config, frontend_classes, core)
|
self.start_frontends(config, frontend_classes, core)
|
||||||
loop.run()
|
loop.run()
|
||||||
|
except (exceptions.BackendError,
|
||||||
|
exceptions.FrontendError,
|
||||||
|
exceptions.MixerError):
|
||||||
|
logger.info('Initialization error. Exiting...')
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
logger.info('Interrupted. Exiting...')
|
logger.info('Interrupted. Exiting...')
|
||||||
return
|
|
||||||
finally:
|
finally:
|
||||||
loop.quit()
|
loop.quit()
|
||||||
self.stop_frontends(frontend_classes)
|
self.stop_frontends(frontend_classes)
|
||||||
@ -292,8 +295,15 @@ class RootCommand(Command):
|
|||||||
|
|
||||||
backends = []
|
backends = []
|
||||||
for backend_class in backend_classes:
|
for backend_class in backend_classes:
|
||||||
backend = backend_class.start(config=config, audio=audio).proxy()
|
try:
|
||||||
backends.append(backend)
|
backend = backend_class.start(
|
||||||
|
config=config, audio=audio).proxy()
|
||||||
|
backends.append(backend)
|
||||||
|
except exceptions.BackendError as exc:
|
||||||
|
logger.error(
|
||||||
|
'Backend (%s) initialization error: %s',
|
||||||
|
backend_class.__name__, exc.message)
|
||||||
|
raise
|
||||||
|
|
||||||
return backends
|
return backends
|
||||||
|
|
||||||
@ -307,7 +317,13 @@ class RootCommand(Command):
|
|||||||
', '.join(f.__name__ for f in frontend_classes) or 'none')
|
', '.join(f.__name__ for f in frontend_classes) or 'none')
|
||||||
|
|
||||||
for frontend_class in frontend_classes:
|
for frontend_class in frontend_classes:
|
||||||
frontend_class.start(config=config, core=core)
|
try:
|
||||||
|
frontend_class.start(config=config, core=core)
|
||||||
|
except exceptions.FrontendError as exc:
|
||||||
|
logger.error(
|
||||||
|
'Frontend (%s) initialization error: %s',
|
||||||
|
frontend_class.__name__, exc.message)
|
||||||
|
raise
|
||||||
|
|
||||||
def stop_frontends(self, frontend_classes):
|
def stop_frontends(self, frontend_classes):
|
||||||
logger.info('Stopping Mopidy frontends')
|
logger.info('Stopping Mopidy frontends')
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user