| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- """HACS Configuration Schemas."""
- # pylint: disable=dangerous-default-value
- import voluptuous as vol
- from ..const import LOCALE
- # Configuration:
- TOKEN = "token"
- SIDEPANEL_TITLE = "sidepanel_title"
- SIDEPANEL_ICON = "sidepanel_icon"
- FRONTEND_REPO = "frontend_repo"
- FRONTEND_REPO_URL = "frontend_repo_url"
- APPDAEMON = "appdaemon"
- NETDAEMON = "netdaemon"
- # Options:
- COUNTRY = "country"
- DEBUG = "debug"
- RELEASE_LIMIT = "release_limit"
- EXPERIMENTAL = "experimental"
- # Config group
- PATH_OR_URL = "frontend_repo_path_or_url"
- def hacs_base_config_schema(config: dict = {}) -> dict:
- """Return a shcema configuration dict for HACS."""
- if not config:
- config = {
- TOKEN: "xxxxxxxxxxxxxxxxxxxxxxxxxxx",
- }
- return {
- vol.Required(TOKEN, default=config.get(TOKEN)): str,
- }
- def hacs_config_option_schema(options: dict = {}) -> dict:
- """Return a shcema for HACS configuration options."""
- if not options:
- options = {
- APPDAEMON: False,
- COUNTRY: "ALL",
- DEBUG: False,
- EXPERIMENTAL: False,
- NETDAEMON: False,
- RELEASE_LIMIT: 5,
- SIDEPANEL_ICON: "hacs:hacs",
- SIDEPANEL_TITLE: "HACS",
- FRONTEND_REPO: "",
- FRONTEND_REPO_URL: "",
- }
- return {
- vol.Optional(SIDEPANEL_TITLE, default=options.get(SIDEPANEL_TITLE)): str,
- vol.Optional(SIDEPANEL_ICON, default=options.get(SIDEPANEL_ICON)): str,
- vol.Optional(RELEASE_LIMIT, default=options.get(RELEASE_LIMIT)): int,
- vol.Optional(COUNTRY, default=options.get(COUNTRY)): vol.In(LOCALE),
- vol.Optional(APPDAEMON, default=options.get(APPDAEMON)): bool,
- vol.Optional(NETDAEMON, default=options.get(NETDAEMON)): bool,
- vol.Optional(DEBUG, default=options.get(DEBUG)): bool,
- vol.Optional(EXPERIMENTAL, default=options.get(EXPERIMENTAL)): bool,
- vol.Exclusive(FRONTEND_REPO, PATH_OR_URL): str,
- vol.Exclusive(FRONTEND_REPO_URL, PATH_OR_URL): str,
- }
- def hacs_config_combined() -> dict:
- """Combine the configuration options."""
- base = hacs_base_config_schema()
- options = hacs_config_option_schema()
- for option in options:
- base[option] = options[option]
- return base
|