1
0
mirror of https://github.com/esphome/esphome.git synced 2025-09-23 13:42:27 +01:00

Allow setting creator project name and version into code (#1872)

This commit is contained in:
Jesse Hills
2021-06-09 13:04:00 +12:00
committed by GitHub
parent b80f3fdec9
commit 5cf18235e3
9 changed files with 113 additions and 51 deletions

View File

@@ -21,10 +21,12 @@ from esphome.const import (
CONF_PLATFORM,
CONF_PLATFORMIO_OPTIONS,
CONF_PRIORITY,
CONF_PROJECT,
CONF_TRIGGER_ID,
CONF_ESP8266_RESTORE_FROM_FLASH,
ARDUINO_VERSION_ESP8266,
ARDUINO_VERSION_ESP32,
CONF_VERSION,
ESP_PLATFORMS,
)
from esphome.core import CORE, coroutine_with_priority
@@ -144,6 +146,15 @@ def valid_include(value):
return value
def valid_project_name(value: str):
if value.count(".") != 1:
raise cv.Invalid("project name needs to have a namespace")
value = value.replace(" ", "_")
return value
CONFIG_SCHEMA = cv.Schema(
{
cv.Required(CONF_NAME): cv.valid_name,
@@ -184,6 +195,12 @@ CONFIG_SCHEMA = cv.Schema(
cv.Optional(CONF_INCLUDES, default=[]): cv.ensure_list(valid_include),
cv.Optional(CONF_LIBRARIES, default=[]): cv.ensure_list(cv.string_strict),
cv.Optional(CONF_NAME_ADD_MAC_SUFFIX, default=False): cv.boolean,
cv.Optional(CONF_PROJECT): cv.Schema(
{
cv.Required(CONF_NAME): cv.All(cv.string_strict, valid_project_name),
cv.Required(CONF_VERSION): cv.string_strict,
}
),
cv.Optional("esphome_core_version"): cv.invalid(
"The esphome_core_version option has been "
"removed in 1.13 - the esphome core source "
@@ -331,3 +348,7 @@ async def to_code(config):
if config[CONF_INCLUDES]:
CORE.add_job(add_includes, config[CONF_INCLUDES])
if CONF_PROJECT in config:
cg.add_define("ESPHOME_PROJECT_NAME", config[CONF_PROJECT][CONF_NAME])
cg.add_define("ESPHOME_PROJECT_VERSION", config[CONF_PROJECT][CONF_VERSION])