#!/bin/bash
# This is wrapper to run the build.sh or build-xyz.sh on CI

# The build mode is the suffix in build-xyz.sh
export BUILD_CI_MODE=${1}

echo "CEPCSW_LCG_RELEASE: ${CEPCSW_LCG_RELEASE}"
echo "CEPCSW_LCG_PLATFORM: ${CEPCSW_LCG_PLATFORM}"
echo "CEPCSW_LCG_VERSION: ${CEPCSW_LCG_VERSION}"
echo "CEPCSW_BLDTOOL: ${CEPCSW_BLDTOOL}"

function build-with-log() {
    buildpid=
    logfile=mylog.txt

    if [ "$CEPCSW_LCG_RELEASE" = "KEY4HEP_STACK" ]; then
        logfile=mylog-k4.sh
        ./build-k4.sh >& ${logfile} &
        buildpid=$!
    else
        source setup.sh
        ./build.sh >& ${logfile} &
        buildpid=$!
    fi

    while ps -p $buildpid 2>/dev/null ; do
        sleep 60
    done &
    echoer=$!

    trap 'kill $echoer' 0

    wait $buildpid
    statuspid=$?

    tail -n100 ${logfile}

    exit $statuspid
}

function build-with-stdout() {
    local build_flags=${BUILD_CI_MODE}
    local source_flag=true

    # Key4hep stack mode
    if [ "$CEPCSW_LCG_RELEASE" = "KEY4HEP_STACK" ]; then
        build_flags=k4
        source_flag=false
    fi

    # prepend '-' if necessary
    if [ -n "$build_flags" ]; then
       build_flags=-${build_flags}
    fi

    if $source_flag; then
        source setup.sh
    fi
    
    ./build${build_flags}.sh

}

if [ -n "${GITHUB_ACTION}" ]; then
    build-with-log
else
    build-with-stdout
fi