You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.7 KiB
61 lines
1.7 KiB
5 years ago
|
"""HACS Startup constrains."""
|
||
|
# pylint: disable=bad-continuation
|
||
|
import os
|
||
|
import json
|
||
|
|
||
|
from .const import CUSTOM_UPDATER_LOCATIONS, CUSTOM_UPDATER_WARNING
|
||
|
from .helpers.misc import version_left_higher_then_right
|
||
|
|
||
|
|
||
|
def check_constans(hacs):
|
||
|
"""Check HACS constrains."""
|
||
|
if not constrain_translations(hacs):
|
||
|
return False
|
||
|
if not constrain_custom_updater(hacs):
|
||
|
return False
|
||
|
if not constrain_version(hacs):
|
||
|
return False
|
||
|
return True
|
||
|
|
||
|
|
||
|
def constrain_custom_updater(hacs):
|
||
|
"""Check if custom_updater exist."""
|
||
|
for location in CUSTOM_UPDATER_LOCATIONS:
|
||
|
if os.path.exists(location.format(hacs.system.config_path)):
|
||
|
msg = CUSTOM_UPDATER_WARNING.format(
|
||
|
location.format(hacs.system.config_path)
|
||
|
)
|
||
|
hacs.logger.critical(msg)
|
||
|
return False
|
||
|
return True
|
||
|
|
||
|
|
||
|
def constrain_version(hacs):
|
||
|
"""Check if the version is valid."""
|
||
|
with open(
|
||
|
f"{hacs.system.config_path}/custom_components/hacs/manifest.json", "r"
|
||
|
) as read:
|
||
|
manifest = json.loads(read.read())
|
||
|
|
||
|
# Check if HA is the required version.
|
||
|
installed = hacs.system.ha_version
|
||
|
minimum = manifest["homeassistant"]
|
||
|
if not version_left_higher_then_right(installed, minimum):
|
||
|
hacs.logger.critical(
|
||
|
f"You need HA version {manifest['homeassistant']} or newer to use this integration."
|
||
|
)
|
||
|
return False
|
||
|
return True
|
||
|
|
||
|
|
||
|
def constrain_translations(hacs):
|
||
|
"""Check if traslations exist."""
|
||
|
if not os.path.exists(
|
||
|
f"{hacs.system.config_path}/custom_components/hacs/.translations"
|
||
|
):
|
||
|
hacs.logger.critical("You are missing the translations directory.")
|
||
|
return False
|
||
|
|
||
|
return True
|
||
|
|