#!/bin/bash
#
# Script to build a project's player via command line.
#

. $(dirname "$0")/utils.sh

STEPS_COUNT=3

# Amount of parameters passed in
PARAMS_COUNT=$#

# Build target
BUILD_TARGET=$1

# Suite
SUITE=$2

print_usage()
{
	echo "Error: Missing some parameters."
	echo ""
	echo "Usage: "
	echo "$ build_project.sh <build_target> <suite_name>"
	echo "where:"
	bcho "  <build_target> " ": The build target to build for. Typically: iOS, Android, StandaloneWindows64, StandaloneLinux64. Look up all accepted values in https://docs.unity3d.com/ScriptReference/BuildTarget.html: "
	bcho "  <suite_name>   " ": Name of the suite to build. Look up all valid values in ConsumerPackageSuiteBuilder.cs"
	echo ""
	echo "Find the generated build in <project_root_folder>/Builds/<build_target>"
	echo ""
	echo "Example: build_project Android master_prod"
}

customise_params()
{
	PARAMS_COUNT=$STEPS_COUNT
	BUILD_TARGET=Android
	SUITE=client_debug
	LOG_PARAM=""
}

validate_input()
{
	if [ $PARAMS_COUNT -le 1 ]; then
	    print_usage
	    exit 1
	fi
}

init_params()
{
	:
}

apply_build_suite()
{
	run_unity_command "-silent-crashes -nographics -buildTarget ${BUILD_TARGET} -projectPath . -executeMethod Ubisoft.Hotel.PackageManager.Editor.PackageManagerMain.BuildApplyBuildSuite Suite:${SUITE}"
}

generate_addressables()
{
	run_unity_command "-quit -executeMethod Ubisoft.Hotel.PackageManager.Editor.PackageManagerMain.BuildAddressables"
}

build_player()
{
	run_unity_command "-silent-crashes -nographics -buildTarget ${BUILD_TARGET} -projectPath . -executeMethod Ubisoft.Hotel.PackageManager.Editor.PackageManagerMain.BuildPlayer"
}

# Uncomment this line to use custom params
#customise_params
prepare_script
validate_input
init_params
clean_project
apply_build_suite
generate_addressables
build_player
