#!/usr/bin/env bash

export REDIR_FILE="/dev/stderr"
export PYTHONHASHSEED=0

SCRIPT_SRC="$(realpath ${BASH_SOURCE[0]})"
SCRIPT_DIR="$(dirname "${SCRIPT_SRC}")"

source $SCRIPT_DIR/common.sh

if [ -z "$INPUT_DIRECTORY" ]; then
	if [ ! -z "$1" ]; then
		INPUT_DIRECTORY=$1
	else
		msg "No \$INPUT_DIRECTORY set or argument given."
		exit 1
	fi
fi
if [ -z "$OUTPUT_DIRECTORY" ]; then
	if [ ! -z "$2" ]; then
		OUTPUT_DIRECTORY=$2
	else
		msg "No \$OUTPUT_DIRECTORY set or argument given."
		exit 1
	fi
fi

TEMP_DIR=$(realpath ../tempdir)
if [ -d "$TEMP_DIR" ]; then
	msg "Temp directory exists!"
	exit 1
fi

set -x

mkdir -p $TEMP_DIR

# Remove the existing stuff
rm -rf $OUTPUT_DIRECTORY/libraries
mkdir $OUTPUT_DIRECTORY/libraries

# Output the status.
DATE=$(date --iso-8601=seconds)
SAFE_DATE=$(echo $DATE | sed -e's/[T+]/_/g' -e's/://g' -e's/[^0-9A-Za-z_]/-/g')
msg "Run start on $DATE"
echo "----------------------------"

echo > $OUTPUT_DIRECTORY/build-tool-version

AUDIT_VERSION=$(git describe)
msg "Audit repo version: $AUDIT_VERSION"
echo "audit: $AUDIT_VERSION" >> $OUTPUT_DIRECTORY/build-tool-version

MAGIC_VERSION=$(magic --version)
msg "Magic version: $MAGIC_VERSION"
echo "magic: $MAGIC_VERSION" >> $OUTPUT_DIRECTORY/build-tool-version

SRC_VERSION=$(cd $INPUT_DIRECTORY; git describe)
msg "SRC version: $SRC_VERSION"
echo "src: $SRC_VERSION" >> $OUTPUT_DIRECTORY/build-tool-version

echo "---------------------"
cat $OUTPUT_DIRECTORY/build-tool-version
echo "---------------------"

export DESCRIBE=audit-${AUDIT_VERSION}_magic-${MAGIC_VERSION}_$SAFE_DATE
msg "Run output version $DESCRIBE"

# Copy accross the template files
msg "Copying template files."
$SCRIPT_DIR/template-files.py $INPUT_DIRECTORY $OUTPUT_DIRECTORY $TEMP_DIR ; RETCODE=$?
if [ "$RETCODE" -ne 0 ]; then
	msg "Error: Failed to copy template files!?"
	exit 1
else
	msg "Successfully copied template files."
fi

# Convert the spice models
msg "Converting spice models."
$SCRIPT_DIR/run-spice.sh $INPUT_DIRECTORY $OUTPUT_DIRECTORY $TEMP_DIR/spice; RETCODE=$?
if [ "$RETCODE" -ne 0 ]; then
	msg "Error: Failed to convert spice files!?"
	exit 1
else
	msg "Successfully converted spice files."
fi

source $SCRIPT_DIR/run/run-cdl-lef-gds.inc.sh
source $SCRIPT_DIR/run/run-verilog.inc.sh
source $SCRIPT_DIR/run/run-liberty.inc.sh

# Remove the .pins files
find $OUTPUT_DIRECTORY -name *.pins -delete

git describe
git diff HEAD

msg "Doing git operations."
(
	cd $OUTPUT_DIRECTORY
	git add -A
	git diff HEAD --stat
	git commit -m"Built based on $DESCRIBE (with src)"
	git push origin master:"master-$DESCRIBE-src"
	echo
	find -name *.src -exec git rm \{\} \+
	git commit --amend -m"Built based on $DESCRIBE (without src)"
	git push origin master:"master-$DESCRIBE"
	sleep 1
	git push origin master:"master-$DESCRIBE"
)
msg "Finished git operations."

msg "FINISHED: Build completed successfully @ $(date) using $AUDIT_VERSION (magic: $MAGIC_VERSION) (started @ $DATE)."
