#!/usr/bin/env bash

# Starts Bennett under 151 in the automated mode.

if [ "$#" -lt 2 ] || [ "$#" -gt 3 ]; then
    echo "Error: Invalid number of arguments." >&2
    echo "Usage: $0 <assembly path> <script path> (<output file>)" >&2
    exit 1
fi

if [ ! -f "$1" ]; then
    echo "Error: File not found at '$1'" >&2
    exit 1
fi

if [ ! -f "$2" ]; then
    echo "Error: File not found at '$2'" >&2
    exit 1
fi

get_abs_path() {
	echo "$( cd -- "$( dirname -- "$1" )" &> /dev/null && pwd )/$(basename "$1")"
}

INPUT=$( get_abs_path "$1" )
SCRIPT=$( get_abs_path "$2" )
OUTPUT=$( get_abs_path "$3" )

SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) 
cd $SCRIPT_DIR

if [ "$#" -eq 2 ]; then
    ./bennett -a -m "RISCV" module -s 0 automate -a $INPUT -s $SCRIPT
    exit 0
fi

# For 3 args we need to give output too
./bennett -a -m "RISCV" module -s 0 automate -a $INPUT -s $SCRIPT -o $OUTPUT