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:
@@ -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])
|
||||
|
Reference in New Issue
Block a user