""" PlatformIO POST script execution to copy updater """ Import("env") import glob import os import shutil from pathlib import Path def get_board_name(env): board = env.get('BOARD_MCU') if env.get('BOARD') == 'esp32-solo1': board = env.get('BOARD').replace('-', '') return board def create_target_dir(env): board = get_board_name(env) target_dir = env.GetProjectOption("custom_build") + '/' + board if not os.path.exists(target_dir): os.makedirs(target_dir) return target_dir def copy_files(source, target, env): file = Path(target[0].get_abspath()) target_dir = create_target_dir(env) board = get_board_name(env) if "firmware" in file.stem: shutil.copy(file, f"{target_dir}/updater.bin") def remove_files(source, target, env): for f in glob.glob("src/*.cpp"): os.remove(f) for f in glob.glob("src/*.h"): os.remove(f) for f in glob.glob("src/networkDevices/*.cpp"): os.remove(f) for f in glob.glob("src/networkDevices/*.h"): os.remove(f) env.AddPostAction("$BUILD_DIR/firmware.bin", copy_files) env.AddPostAction("$BUILD_DIR/firmware.bin", remove_files)