mirror of
https://github.com/espressif/arduino-esp32
synced 2024-09-21 10:28:04 +00:00
da5c6ab9ae
* Add Config * Add Cache and remove pre-commit action * [pre-commit.ci lite] apply automatic fixes * Remove freeze * Fix * Update action * Use latest stable Python 3 version * Improve caching * Improve cache tag * Improve bot message * fix(typos): Fix typos * fix(typos): Fix more typos * refactor(udp_server): Convert script from Python 2 to 3 * Fix whitespace * Clang-format fixes * Prettier fixes * Black formatting * Manual fixes * Line endings * Fix flake and make Vale manual * Fix flake and reformat --------- Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Rodrigo Garcia <rodrigo.garcia@espressif.com>
54 lines
2.2 KiB
Python
54 lines
2.2 KiB
Python
import os
|
|
import sys
|
|
import shutil
|
|
import json
|
|
|
|
APP_HEADER_SIZE = 32
|
|
VERSION_NAME_OFFSET = APP_HEADER_SIZE + 16
|
|
VERSION_NAME_SIZE = 32
|
|
PROJECT_NAME_OFFSET = VERSION_NAME_OFFSET + VERSION_NAME_SIZE
|
|
PROJECT_NAME_SIZE = 32
|
|
|
|
# Input path of temporary build directory created by Arduino
|
|
BUILD_DIR = sys.argv[1]
|
|
# Input project name
|
|
PROJ_NAME = sys.argv[2]
|
|
# Input path to create output package
|
|
TARGET_PATH = sys.argv[3]
|
|
|
|
|
|
def main():
|
|
print("Creating ESP Insights Firmware Package.")
|
|
archive_path = os.path.join(BUILD_DIR, PROJ_NAME)
|
|
out_path = os.path.join(TARGET_PATH, PROJ_NAME)
|
|
|
|
# Create target archive directories
|
|
os.makedirs(archive_path, exist_ok=True)
|
|
os.makedirs(os.path.join(archive_path, "partition_table"), exist_ok=True)
|
|
os.makedirs(os.path.join(archive_path, "bootloader"), exist_ok=True)
|
|
|
|
# Copy files from build directory to archive directory
|
|
shutil.copy2(os.path.join(BUILD_DIR, PROJ_NAME + ".bin"), archive_path)
|
|
shutil.copy2(os.path.join(BUILD_DIR, PROJ_NAME + ".elf"), archive_path)
|
|
shutil.copy2(os.path.join(BUILD_DIR, PROJ_NAME + ".map"), archive_path)
|
|
shutil.copy2(os.path.join(BUILD_DIR, "partitions.csv"), archive_path)
|
|
shutil.copy2(os.path.join(BUILD_DIR, PROJ_NAME + ".bootloader.bin"), os.path.join(archive_path, "bootloader"))
|
|
shutil.copy2(os.path.join(BUILD_DIR, PROJ_NAME + ".partitions.bin"), os.path.join(archive_path, "partition_table"))
|
|
|
|
with open(os.path.join(BUILD_DIR, PROJ_NAME + ".bin"), "rb") as bin_file:
|
|
bin_file.seek(VERSION_NAME_OFFSET)
|
|
version_name = (bin_file.read(VERSION_NAME_SIZE).decode("utf-8")).split("\x00", 1)[0]
|
|
bin_file.seek(PROJECT_NAME_OFFSET)
|
|
project_name = (bin_file.read(PROJECT_NAME_SIZE).decode("utf-8")).split("\x00", 1)[0]
|
|
project_build_config_obj = {"project": {"name": project_name, "version": version_name}}
|
|
with open(os.path.join(archive_path, "project_build_config.json"), "w") as json_file:
|
|
json_file.write(json.dumps(project_build_config_obj))
|
|
|
|
shutil.make_archive(out_path, "zip", BUILD_DIR, PROJ_NAME)
|
|
print("Archive created at {}".format(out_path + ".zip"))
|
|
return
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|