mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-06-23 10:26:30 +00:00
40 lines
888 B
Python
40 lines
888 B
Python
"""Main file for HassIO."""
|
|
import asyncio
|
|
import logging
|
|
import signal
|
|
import sys
|
|
|
|
import hassio.bootstrap as bootstrap
|
|
import hassio.core as core
|
|
|
|
_LOGGER = logging.getLogger(__name__)
|
|
|
|
|
|
# pylint: disable=invalid-name
|
|
if __name__ == "__main__":
|
|
bootstrap.initialize_logging()
|
|
|
|
if not bootstrap.check_environment():
|
|
exit(1)
|
|
|
|
loop = asyncio.get_event_loop()
|
|
hassio = core.HassIO(loop)
|
|
|
|
_LOGGER.info("Run Hassio setup")
|
|
loop.run_until_complete(hassio.setup())
|
|
|
|
_LOGGER.info("Start Hassio task")
|
|
loop.call_soon_threadsafe(loop.create_task, hassio.start())
|
|
|
|
try:
|
|
loop.add_signal_handler(
|
|
signal.SIGTERM, lambda: loop.create_task(hassio.stop()))
|
|
except ValueError:
|
|
_LOGGER.warning("Could not bind to SIGTERM")
|
|
|
|
loop.run_forever()
|
|
loop.close()
|
|
|
|
_LOGGER.info("Close Hassio")
|
|
sys.exit(hassio.exit_code)
|