#!/usr/bin/env bash

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

# Split apart lib files first
msg "Splitting existing lib files."
find $INPUT_DIRECTORY -name \*.lib -print \
	| parallel -v $SCRIPT_DIR/liberty_json_rewrite.py \{\} $OUTPUT_DIRECTORY $TEMP_DIR \
	; RETCODE=$?
if [ "$RETCODE" -ne 0 ]; then
	msg "Error: Failed to split lib files!?"
	exit 1
else
	msg "Successfully split lib files."
fi

msg "Rewriting common lib.json files."
$SCRIPT_DIR/liberty_json_rewrite.py --common $INPUT_DIRECTORY $OUTPUT_DIRECTORY $TEMP_DIR \
	; RETCODE=$?
if [ "$RETCODE" -ne 0 ]; then
	msg "Error: Failed to rewrite common lib.json files!?"
	exit 1
else
	msg "Successfully rewrote lib.json files."
fi
