#!/usr/bin/env bash

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
if [ -z "$TEMP_DIR" ]; then
	if [ ! -z "$3" ]; then
		TEMP_DIR=$3
	else
		msg "No \$TEMP_DIR set or argument given."
		exit 1
	fi
fi

if [ ! -z "$4" ]; then
	VERSIONS=$4
else
	VERSIONS="V*"
fi

set -e
set -x

for V in $INPUT_DIRECTORY/s8/$VERSIONS; do

	msg "Processing spice for $V"

	VDIR=$(echo $(realpath $V) | sed -e"s@$(realpath $INPUT_DIRECTORY)/@@")
	echo $VDIR

	# s8/V2.0.1/MODELS/SPECTRE/s8phirs_10r/Models/
	MODELS_1=$V/MODELS/SPECTRE/s8phirs_10r/Models/
	MODELS_2=$V/MODELS/SPECTRE/s8x/Models/

	OA=$V/VirtuosoOA

	TEMP1=$(realpath -m $TEMP_DIR/$VDIR/step1-converted)
	rm -rf $TEMP1
	mkdir -p $TEMP1
	TEMP2=$(realpath -m $TEMP_DIR/$VDIR/step2-split)
	rm -rf $TEMP2
	TEMP3=$(realpath -m $TEMP_DIR/$VDIR/step3)

	echo
	echo
	echo "Step 1 - Converting spectre files to spice"
	echo "A ----------------------------------------"
	mkdir -p $TEMP1/s8a
	$SCRIPT_DIR/spectre_to_spice.py $MODELS_1 $TEMP1/s8a -nocmt
	echo "B ----------------------------------------"
	mkdir -p $TEMP1/s8b
	$SCRIPT_DIR/spectre_to_spice.py $MODELS_2 $TEMP1/s8b -nocmt
	echo "C ----------------------------------------"
	# Add the sky130.lib.spice file, which is a top-level file for including
	# everything that is compatible with ngspice syntax.
	cp $SCRIPT_DIR/sky130.lib.spice $TEMP1/s8b
	echo "D ----------------------------------------"
	mkdir -p $TEMP1/oa
	find $OA -name \*.sp -exec $SCRIPT_DIR/spectre_to_spice.py \{\} $TEMP1/oa/ -nocmt \;

	echo
	echo
	echo "Step 2 - Handling comment lines"
	echo "----------------------------------------"
	$SCRIPT_DIR/spice_comment_tables.py $TEMP1/s8a/
	$SCRIPT_DIR/spice_comment_tables.py $TEMP1/s8b/
	$SCRIPT_DIR/spice_comment_tables.py $TEMP1/oa/
	find $TEMP1 -name \*.table
	echo "------------------------------------------"
	$SCRIPT_DIR/spice-remove-x.py $TEMP1

	rm -v $TEMP1/s8b/*_tt*.cor.bins.csv
	rm -v $TEMP1/s8b/*nvhv*.cor.bins.csv

	echo
	echo
	echo "Step 3 - Splitting spice files"
	echo "------------------------------"
	s8asplit_subckts="r+c.mod"
	s8bsplit_subckts="xcmvpp.mod xcmvpp_moscap.mod xcmvpp_ponly.mod xcmvpp_pqonly.mod xcnwvc.mod xcmimc.mod xinductor.mod linear.mod pnp.mod"

	s8bsplit_mod="pdiode_h.mod ndiode_h.mod dnwdiode_pw.mod nwdiode.mod"

	mkdir -p $TEMP2/s8a
	$SCRIPT_DIR/split_nlowvt_rf.py $TEMP1/s8a/nlowvt_rf.pm3 $TEMP2/s8a
	$SCRIPT_DIR/copy-no-overwrite.py $TEMP1/s8a $TEMP2/s8a
	for file in $s8asplit_subckts; do
		rm $TEMP2/s8a/$file
		$SCRIPT_DIR/split_one_spice.py $TEMP1/s8a/$file $TEMP2/s8a
	done
	mkdir -p $TEMP2/s8b
	$SCRIPT_DIR/copy-no-overwrite.py $TEMP1/s8b $TEMP2/s8b
	for file in $s8bsplit_subckts; do
		rm $TEMP2/s8b/$file
		$SCRIPT_DIR/split_one_spice.py $TEMP1/s8b/$file $TEMP2/s8b
	done
	for file in $s8bsplit_mod; do
		rm $TEMP2/s8b/$file
		$SCRIPT_DIR/split_one_model.py $TEMP1/s8b/$file $TEMP2/s8b
	done

	cp -avR $TEMP1/oa $TEMP2/oa

	echo
	echo
	echo "Step 4 - Rewriting spice files to output"
	echo "----------------------------------------"
	$SCRIPT_DIR/spice_rewrite.py $TEMP2/s8a $OUTPUT_DIRECTORY $TEMP3/s8a
	$SCRIPT_DIR/spice_rewrite.py $TEMP2/s8b $OUTPUT_DIRECTORY $TEMP3/s8b
	$SCRIPT_DIR/spice_rewrite.py $TEMP2/oa  $OUTPUT_DIRECTORY $TEMP3/oa
done

#$SCRIPT_DIR/upload-spice-includes.py $OUTPUT_DIRECTORY
