#
# jgaurora_a5s_a1_with_bootloader.py
# Customizations for env:jgaurora_a5s_a1
#
import pioutil
if pioutil.is_pio_build():

	# Append ${PROGNAME}.bin firmware after bootloader and save it as 'jgaurora_firmware.bin'
	def addboot(source, target, env):
		from pathlib import Path

		fw_path = Path(target[0].path)
		fwb_path = fw_path.parent / 'firmware_with_bootloader.bin'
		with fwb_path.open("wb") as fwb_file:
			bl_path = Path("buildroot/share/PlatformIO/scripts/jgaurora_bootloader.bin")
			bl_file = bl_path.open("rb")
			while True:
				b = bl_file.read(1)
				if b == b'': break
				else: fwb_file.write(b)

			with fw_path.open("rb") as fw_file:
				while True:
					b = fw_file.read(1)
					if b == b'': break
					else: fwb_file.write(b)

		fws_path = Path(target[0].dir.path, 'firmware_for_sd_upload.bin')
		if fws_path.exists():
			fws_path.unlink()

		fw_path.rename(fws_path)

	import marlin
	marlin.add_post_action(addboot);
