#! /bin/bash

# Build Tizen project according .spec file

# Mandatory parameters:
# - LOCAL_SDK_PATH
# - LOCAL_PROJECTS
# - LOCAL_TEE
# Optional parameters:
# - LOCAL_PLATFORM_VERSION
# - LOCAL_OUT

# functions for change color of text in terminal
function print_red_msg ()
{
    echo -e "\n\e[01;31m [${LOCAL_PROJECT_NAME}]: Error-> $@ \e[00m\n" 1>&2
}

function print_green_msg ()
{
    echo -e "\n\e[01;32m [${LOCAL_PROJECT_NAME}]: Info-> $@ \e[00m\n"
}

function print_yellow_msg ()
{
    echo -e "\n\e[00;33m [${LOCAL_PROJECT_NAME}]: Debug-> $@ \e[00m\n"
}

function init_tmp_repo ()
{
    print_yellow_msg "Init temp Git repo..."
    git init
    git add CMakeLists.txt
    git commit -m "Build commit"
}

function remove_tmp_repo ()
{
    print_yellow_msg "Remove temp data..."
    rm -rf ./.git
}

# Setup input parameters
LOCAL_GBS=${1}
LOCAL_PROJECT_NAME=${2}
LOCAL_PLATFORM_VERSION=${3}
LOCAL_TEE=${4}
LOCAL_OUT=${5}
LOCAL_GBS_CONFIG=${6}

print_yellow_msg "Start Tizen build for ${LOCAL_PROJECT_NAME} ${LOCAL_PLATFORM_VERSION} ${LOCAL_TEE}"

# Prepare temp build files
init_tmp_repo

$LOCAL_GBS -c ${LOCAL_GBS_CONFIG}/gbs.conf build -P $LOCAL_PLATFORM_VERSION -A armv7l --define "tee ${LOCAL_TEE}" --include-all --clean-once --clean-repos

# Remove temp build files
remove_tmp_repo 

print_yellow_msg "Finish Tizen build for ${LOCAL_PROJECT_NAME} ${LOCAL_PLATFORM_VERSION} ${LOCAL_TEE}"

LOCAL_PKG_OUT=${LOCAL_OUT}/${LOCAL_PLATFORM_VERSION}
print_yellow_msg "Copy *.rpm from GBS dir to ${LOCAL_PKG_OUT}"

mkdir -p ${LOCAL_PKG_OUT}
cp -v ~/GBS-ROOT/local/repos/${LOCAL_PLATFORM_VERSION}/armv7l/RPMS/* ${LOCAL_PKG_OUT}/

print_green_msg "Done! Build opts: ${LOCAL_PROJECT_NAME}, ${LOCAL_PLATFORM_VERSION}, ${LOCAL_TEE}"
