#!/bin/bash

set -euo pipefail

VERSION="1.0"
JLINK_INSTALL_PATH="/opt/SEGGER/JLink"
GDB_CMDS="target remote localhost:2331
monitor reset
monitor halt
load
compare-sections
q
"
jlinkPID=""
TMP=""

function finish {
  if [ "$jlinkPID" != "" ]; then
          echo "Stopping Jlink"
          kill $jlinkPID
  fi
  if [ "$TMP" != "" ]; then
          echo "Cleaning tmp files"
          rm $TMP
  fi
}
trap finish EXIT

echo "Version: $VERSION"

if [ ! -e "$1" ];then
        >&2 echo "Cannot access $1, exiting"
        exit 1
fi

"$JLINK_INSTALL_PATH"/JLinkGDBServer -select USB -device MKL02Z32xxx4 -endian little -if SWD -speed 1000  > /dev/null &
jlinkPID=$!

TMP=$(mktemp /tmp/XXXXX-gdbcmd)
echo "${GDB_CMDS}" > "$TMP"

gdb-multiarch -x "$TMP" "$1"