#! /bin/bash

set -e

source ./print_msg.config

if [ "$1" == "" ] || [ "$2" == "" ]; then
print_green_msg " ========= COMPILATION EXAMPLES ==========="
print_green_msg " ./build_all.sh MT6757 sdk20               "
print_green_msg " ================= END ===================="
exit
fi

export BUILD_ROOT=$(pwd)
export BLOWFISH=$2
export USE_BF=true

cd $BUILD_ROOT

TEE_PAYMENT_TA_LIST=("amex_pay" "amex_payv2" "mc_pay" "visa_pay" "plcc_pay" "dc_pay" )

TEE_BF_PRD_DIR="app/src/tee_production/assets/ta/bf/${1:2:${#1}}"
TEE_BF_STG_DIR="app/src/tee_staging/assets/ta/bf/${1:2:${#1}}"
TEE_OUT_DIR_PRD="${BUILD_ROOT}/${JOB_NAME}${BUILD_DISPLAY_NAME}_v${P4_CHANGELIST}/${TEE_BF_PRD_DIR}"
TEE_OUT_DIR_STG="${BUILD_ROOT}/${JOB_NAME}${BUILD_DISPLAY_NAME}_v${P4_CHANGELIST}/${TEE_BF_STG_DIR}"
mkdir -p $TEE_OUT_DIR_PRD
mkdir -p $TEE_OUT_DIR_STG

FILE_EXT=".mp3"

for TA_NAME in "${TEE_PAYMENT_TA_LIST[@]}"; do
	if [ -d "$TA_NAME" ]; then
		source ./build_version.config
		cd $TA_NAME
		if [ ${TA_NAME} == "amex_payv2" ]; then
			TA_NAME="amex_pay";
			FILE_EXT="_v2.mp3"
		else 
			FILE_EXT=".mp3"
		fi
		
		print_green_msg ""
		print_green_msg "******************************************************************"
		print_green_msg "*    Build Staging TA $TA_NAME and $1                        *"
		print_green_msg "******************************************************************"

		./build_${TA_NAME}_for_signing.sh $1 $2 -ds
		ls ./Out | while read line; do mv ./Out/$line ./Out/$line${FILE_EXT}; done
		cp -rf Out/0* ${TEE_OUT_DIR_STG}/
		rm -rf Out

		print_green_msg ""
		print_green_msg "******************************************************************"
		print_green_msg "*    Build Production TA $TA_NAME and $1                     *"
		print_green_msg "******************************************************************"

		./build_${TA_NAME}_for_signing.sh $1 $2
		ls ./Out | while read line; do mv ./Out/$line ./Out/$line${FILE_EXT}; done
		cp -rf Out/0* ${TEE_OUT_DIR_PRD}/
		rm -rf Out

		cd $BUILD_ROOT
	fi
done

cd $BUILD_ROOT

ESE_BF_PRD_DIR="app/src/ese_production/assets/ta//bf/${1:2:${#1}}"
ESE_BF_STG_DIR="app/src/ese_staging/assets/ta/bf/${1:2:${#1}}"
ESE_OUT_DIR_PRD="${BUILD_ROOT}/${JOB_NAME}${BUILD_DISPLAY_NAME}_v${P4_CHANGELIST}/${ESE_BF_PRD_DIR}"
ESE_OUT_DIR_STG="${BUILD_ROOT}/${JOB_NAME}${BUILD_DISPLAY_NAME}_v${P4_CHANGELIST}/${ESE_BF_STG_DIR}"
mkdir -p $ESE_OUT_DIR_PRD
mkdir -p $ESE_OUT_DIR_STG

PAYMENT_TA_LIST=("chncmm_pay" "eurcmm_pay")

for TA_NAME in "${PAYMENT_TA_LIST[@]}"; do
	if [ -d "$TA_NAME" ]; then
		source ./build_version.config
		cd ${TA_NAME}

		T=GEM

		print_green_msg ""
		print_green_msg "******************************************************************"
		print_green_msg "*    Build Staging TA $TA_NAME $T and $1                  *"
		print_green_msg "******************************************************************"

		./build_${TA_NAME}_for_signing.sh $1 $2 -dsT${T}
		ls ./Out | while read line; do mv ./Out/$line ./Out/$line.mp3; done
		cp -rf Out/0* ${ESE_OUT_DIR_STG}/
		rm -rf Out

		print_green_msg ""
		print_green_msg "******************************************************************"
		print_green_msg "*    Build Production TA $T and $1                          *"
		print_green_msg "******************************************************************"

		./build_${TA_NAME}_for_signing.sh $1 $2 -T${T}
		ls ./Out | while read line; do mv ./Out/$line ./Out/$line.mp3; done
		cp -rf Out/0* ${ESE_OUT_DIR_PRD}/
		rm -rf Out

		cd $BUILD_ROOT
	fi
done

cd $BUILD_ROOT

LOCAL_SCHEME_BF_PRD_DIR="app/src/tee_production_localScheme/assets/ta/bf/${1:2:${#1}}"
LOCAL_SCHEME_BF_STG_DIR="app/src/tee_staging_localScheme/assets/ta/bf/${1:2:${#1}}"
LOCAL_SCHEME_OUT_DIR_PRD="${BUILD_ROOT}/${JOB_NAME}${BUILD_DISPLAY_NAME}_v${P4_CHANGELIST}/${LOCAL_SCHEME_BF_PRD_DIR}"
LOCAL_SCHEME_OUT_DIR_STG="${BUILD_ROOT}/${JOB_NAME}${BUILD_DISPLAY_NAME}_v${P4_CHANGELIST}/${LOCAL_SCHEME_BF_STG_DIR}"
mkdir -p $LOCAL_SCHEME_OUT_DIR_PRD
mkdir -p $LOCAL_SCHEME_OUT_DIR_STG

LOCAL_SCHEME_TA_LIST=("krcc_pay")

for TA_NAME in "${LOCAL_SCHEME_TA_LIST[@]}"; do
	if [ -d "${TA_NAME}" ]; then
        if [ $TA_NAME == krcc_pay ]; then
            export GLOBAL_MEMBERSHIP=true
        fi
        
        source ./build_version.config

		cd ${TA_NAME}
		print_green_msg ""
		print_green_msg "******************************************************************"
		print_green_msg "*    Build Staging TA $TA_NAME and $1                        *"
		print_green_msg "******************************************************************"

		./build_${TA_NAME}_for_signing.sh $1 $2 -ds
		ls ./Out | while read line; do mv ./Out/$line ./Out/$line.mp3; done
		cp -rf Out/0* ${LOCAL_SCHEME_OUT_DIR_STG}/
		rm -rf Out

		print_green_msg ""
		print_green_msg "******************************************************************"
		print_green_msg "*    Build Production TA $TA_NAME and $1                     *"
		print_green_msg "******************************************************************"

		./build_${TA_NAME}_for_signing.sh $1 $2
		ls ./Out | while read line; do mv ./Out/$line ./Out/$line.mp3; done
		cp -rf Out/0* ${LOCAL_SCHEME_OUT_DIR_PRD}/
		rm -rf Out

		cd $BUILD_ROOT
	fi
done

cd $BUILD_ROOT

CMN_BF_PRD_DIR="app/src/cmn_production/assets/ta/bf/${1:2:${#1}}"
CMN_BF_STG_DIR="app/src/cmn_staging/assets/ta/bf/${1:2:${#1}}"
CMN_OUT_DIR_PRD="${BUILD_ROOT}/${JOB_NAME}${BUILD_DISPLAY_NAME}_v${P4_CHANGELIST}/${CMN_BF_PRD_DIR}"
CMN_OUT_DIR_STG="${BUILD_ROOT}/${JOB_NAME}${BUILD_DISPLAY_NAME}_v${P4_CHANGELIST}/${CMN_BF_STG_DIR}"
mkdir -p $CMN_OUT_DIR_PRD
mkdir -p $CMN_OUT_DIR_STG

COMMON_TA_LIST=("cncc_pay")

for TA_NAME in "${COMMON_TA_LIST[@]}"; do
	if [ -d "${TA_NAME}" ]; then
		source ./build_version.config
		cd ${TA_NAME}
		print_green_msg ""
		print_green_msg "******************************************************************"
		print_green_msg "*    Build Staging TA $TA_NAME and $1                        *"
		print_green_msg "******************************************************************"

		./build_${TA_NAME}_for_signing.sh $1 $2 -ds
		ls ./Out | while read line; do mv ./Out/$line ./Out/$line.mp3; done
		cp -rf Out/0* ${CMN_OUT_DIR_STG}/
		rm -rf Out

		print_green_msg ""
		print_green_msg "******************************************************************"
		print_green_msg "*    Build Production TA $TA_NAME and $1                     *"
		print_green_msg "******************************************************************"

		./build_${TA_NAME}_for_signing.sh $1 $2
		ls ./Out | while read line; do mv ./Out/$line ./Out/$line.mp3; done
		cp -rf Out/0* ${CMN_OUT_DIR_PRD}/
		rm -rf Out

		cd $BUILD_ROOT
	fi
done

cd $BUILD_ROOT

PAY_AUTH=("pay_auth")
if [ -d "$PAY_AUTH" ]; then
	print_green_msg "******************************************************************"
	print_green_msg "*    Build ${TA_NAME}                                           *"
	print_green_msg "******************************************************************"

	TA_NAME=pay_auth
	source ./build_version.config

	cd ${TA_NAME}

	export SUPPORT_IRIS=false
	export SUPPORT_SOFTKEY=false

	for R in 480 320 ; do
		TUI_DIR="360-xxxhdpi"
		if [ ${R} == 480 ]; then
			TUI_DIR="360-xxhdpi"
		elif [ ${R} == 320 ]; then
			TUI_DIR="360-xhdpi"
		fi

		print_green_msg ""
		print_green_msg "******************************************************************"
		print_green_msg "*    Build Staging TA $R and $1                             *"
		print_green_msg "******************************************************************"

		mkdir -p $CMN_OUT_DIR_STG/$TUI_DIR
		./build_pay_auth_for_signing.sh $1 $2 -dur${R}
		#cp -rf Out/pay_auth $CMN_OUT_DIR_STG/$TUI_DIR/pay_auth.elf
		ls ./Out | while read line; do mv ./Out/$line ./Out/$line.mp3; done
		cp -rf Out/0* $CMN_OUT_DIR_STG/$TUI_DIR
		rm -rf Out

		print_green_msg ""
		print_green_msg "******************************************************************"
		print_green_msg "*    Build Production TA $R and $1                          *"
		print_green_msg "******************************************************************"

		mkdir -p $CMN_OUT_DIR_PRD/$TUI_DIR
		./build_pay_auth_for_signing.sh $1 $2 -ur${R}
		#cp -rf Out/pay_auth $CMN_OUT_DIR_PRD/$TUI_DIR/pay_auth.elf
		ls ./Out | while read line; do mv ./Out/$line ./Out/$line.mp3; done
		cp -rf Out/0* $CMN_OUT_DIR_PRD/$TUI_DIR
		rm -rf Out
	done

fi

cd $BUILD_ROOT

print_yellow_msg ""
print_yellow_msg "******************************************************************"
print_yellow_msg "* Build Done !!!!                                                *"
print_yellow_msg "******************************************************************"
