#!/usr/bin/env bash

set -eux

artifact="$(basename $1)"
rust_target_folder="$(cd $(dirname $1)/../.. && pwd -P)"
if [ -z $APP_HEAP_SIZE ]; then
	echo "Set APP_HEAP_SIZE to a value"
	exit 1
fi

if [ -z $KERNEL_HEAP_SIZE ]; then
	echo "Set KERNEL_HEAP_SIZE to a value"
	exit 1
fi

case "${PLATFORM}" in
    "apollo3")
        tockloader_flags=""
        binary_name=cortex-m4.elf
        tockload=n
        ;;
    "nucleo_f429zi"|"nucleo_f446re")
        tockloader_flags=""
        binary_name=cortex-m4.elf
        tockload=n
        ;;
    "nrf52"|"nrf52840")
        tockloader_flags="--jlink --arch cortex-m4 --board nrf52dk --jtag-device nrf52"
        binary_name=cortex-m4.elf
        tockload=y
        ;;
    "hail")
        tockloader_flags=""
        binary_name=cortex-m4.elf
        tockload=y
        ;;
    "hifive1")
        tockloader_flags=""
        binary_name=rv32imac.elf
        tockload=n
        ;;
    "imxrt1050")
        tockloader_flags=""
        binary_name=cortex-m7.elf
        tockload=n
        ;;
    "msp432")
        tockloader_flags=""
        binary_name=cortex-m4.elf
        tockload=n
        ;;
    "opentitan")
        tockloader_flags=""
        binary_name=rv32imc.elf
        tockload=n
        ;;
    *)
        echo "Unknown platform \"${PLATFORM}\""
        exit 1
        ;;
esac

libtock_target_path="${rust_target_folder}/tab/${PLATFORM}/${artifact}"
elf_file_name="${libtock_target_path}/${binary_name}"
tab_file_name="${libtock_target_path}.tab"

mkdir -p "${libtock_target_path}"
cp "$1" "${elf_file_name}"

STACK_SIZE=$(nm --print-size --size-sort --radix=d "${elf_file_name}" | grep STACK_MEMORY | cut -d " " -f 2)

elf2tab -n "${artifact}" -o "${tab_file_name}" "${elf_file_name}" --stack ${STACK_SIZE} --app-heap $APP_HEAP_SIZE --kernel-heap $KERNEL_HEAP_SIZE --protected-region-size=64

if [ $tockload == "n" ]; then
	echo "Skipping flashing for platform \"${PLATFORM}\""
	exit 0
fi

if ! [ -x "$(command -v tockloader)" ]; then
    echo "Skipping flashing as tockloader isn't installed"
    exit 0
fi

tockloader uninstall ${tockloader_flags} || true
tockloader install ${tockloader_flags} "${tab_file_name}"
