mirror of
https://github.com/home-assistant/supervisor.git
synced 2025-04-20 19:27:16 +00:00
73 lines
1.9 KiB
Python
73 lines
1.9 KiB
Python
"""Bootstrap HassIO."""
|
|
import logging
|
|
import os
|
|
import stat
|
|
|
|
from colorlog import ColoredFormatter
|
|
|
|
from .const import SOCKET_DOCKER
|
|
from .config import CoreConfig
|
|
|
|
_LOGGER = logging.getLogger(__name__)
|
|
|
|
|
|
def initialize_system_data(websession):
|
|
"""Setup default config and create folders."""
|
|
config = CoreConfig(websession)
|
|
|
|
# homeassistant config folder
|
|
if not os.path.isdir(config.path_config):
|
|
_LOGGER.info(
|
|
"Create Home-Assistant config folder %s", config.path_config)
|
|
os.mkdir(config.path_config)
|
|
|
|
# homeassistant ssl folder
|
|
if not os.path.isdir(config.path_ssl):
|
|
_LOGGER.info("Create Home-Assistant ssl folder %s", config.path_ssl)
|
|
os.mkdir(config.path_ssl)
|
|
|
|
return config
|
|
|
|
|
|
def initialize_logging():
|
|
"""Setup the logging."""
|
|
logging.basicConfig(level=logging.INFO)
|
|
fmt = ("%(asctime)s %(levelname)s (%(threadName)s) "
|
|
"[%(name)s] %(message)s")
|
|
colorfmt = "%(log_color)s{}%(reset)s".format(fmt)
|
|
datefmt = '%y-%m-%d %H:%M:%S'
|
|
|
|
# suppress overly verbose logs from libraries that aren't helpful
|
|
logging.getLogger("aiohttp.access").setLevel(logging.WARNING)
|
|
|
|
logging.getLogger().handlers[0].setFormatter(ColoredFormatter(
|
|
colorfmt,
|
|
datefmt=datefmt,
|
|
reset=True,
|
|
log_colors={
|
|
'DEBUG': 'cyan',
|
|
'INFO': 'green',
|
|
'WARNING': 'yellow',
|
|
'ERROR': 'red',
|
|
'CRITICAL': 'red',
|
|
}
|
|
))
|
|
|
|
|
|
def check_environment():
|
|
"""Check if all environment are exists."""
|
|
for key in ('SUPERVISOR_SHARE', 'SUPERVISOR_NAME',
|
|
'HOMEASSISTANT_REPOSITORY'):
|
|
try:
|
|
os.environ[key]
|
|
except KeyError:
|
|
_LOGGER.fatal("Can't find %s in env!", key)
|
|
return False
|
|
|
|
mode = os.stat(SOCKET_DOCKER)[stat.ST_MODE]
|
|
if not stat.S_ISSOCK(mode):
|
|
_LOGGER.fatal("Can't find docker socket!")
|
|
return False
|
|
|
|
return True
|