1
0
mirror of https://github.com/esphome/esphome.git synced 2025-10-28 21:53:48 +00:00

Run post scripts for factory binaries for flashing (#3003)

Co-authored-by: Oxan van Leeuwen <oxan@oxanvanleeuwen.nl>
This commit is contained in:
Jesse Hills
2022-01-11 15:24:26 +13:00
committed by GitHub
parent 073828235f
commit ece71a0228
7 changed files with 103 additions and 1 deletions

View File

@@ -1,4 +1,5 @@
import logging
import os
from esphome.const import (
CONF_BOARD,
@@ -14,6 +15,7 @@ from esphome.const import (
from esphome.core import CORE, coroutine_with_priority
import esphome.config_validation as cv
import esphome.codegen as cg
from esphome.helpers import copy_file_if_changed
from .const import CONF_RESTORE_FROM_FLASH, KEY_BOARD, KEY_ESP8266, esp8266_ns
from .boards import ESP8266_FLASH_SIZES, ESP8266_LD_SCRIPTS
@@ -158,6 +160,8 @@ async def to_code(config):
cg.add_define("ESPHOME_BOARD", config[CONF_BOARD])
cg.add_define("ESPHOME_VARIANT", "ESP8266")
cg.add_platformio_option("extra_scripts", ["post:post_build.py"])
conf = config[CONF_FRAMEWORK]
cg.add_platformio_option("framework", "arduino")
cg.add_build_flag("-DUSE_ARDUINO")
@@ -210,3 +214,14 @@ async def to_code(config):
if ld_script is not None:
cg.add_platformio_option("board_build.ldscript", ld_script)
# Called by writer.py
def copy_files():
dir = os.path.dirname(__file__)
post_build_file = os.path.join(dir, "post_build.py")
copy_file_if_changed(
post_build_file,
CORE.relative_build_path("post_build.py"),
)

View File

@@ -0,0 +1,15 @@
import shutil
# pylint: disable=E0602
Import("env") # noqa
def esp8266_copy_factory_bin(source, target, env):
firmware_name = env.subst("$BUILD_DIR/${PROGNAME}.bin")
new_file_name = env.subst("$BUILD_DIR/${PROGNAME}-factory.bin")
shutil.copyfile(firmware_name, new_file_name)
# pylint: disable=E0602
env.AddPostAction("$BUILD_DIR/${PROGNAME}.bin", esp8266_copy_factory_bin) # noqa