#!/bin/bash
# (c) 2016 Jan-Simon Moeller dl9pf(at)gmx.de
# License GPLv2
#
# debugging purposes
set -e

################################################################################
# build the app
################################################################################

# fallback
if test -z "${GERRIT_PROJECT}"; then
    export GERRIT_PROJECT="apps/controls"
fi
if test -z "${GERRIT_BRANCH}"; then
    export GERRIT_BRANCH="master"
fi
if test -z "${GERRIT_REFSPEC}"; then
    export GERRIT_REFSPEC="refs/tags/dab_3.99.1"
fi
if test -z "${GERRIT_HOST}"; then
    export GERRIT_HOST="gerrit.automotivelinux.org"
fi

# apply GERRIT_*
if test -n "${GERRIT_PROJECT}"; then
    export TARGETPROJECT="${GERRIT_PROJECT}"
fi
if test -n "${GERRIT_BRANCH}"; then
    export TARGETBRANCH="${GERRIT_BRANCH}"
fi
if test -n "${GERRIT_REFSPEC}"; then
    export TARGETREFSPEC="${GERRIT_REFSPEC}"
fi



HANDLED="no"

# Projects in apps/*
###################
if [[ ! x"yes" = x"$HANDLED" ]] && $(echo "$TARGETPROJECT" | grep -q "apps/"); then

    MYPROJECT=`echo $TARGETPROJECT | sed -e "s#apps/##g"`

    # clone git
    rm -rf ${MYPROJECT}
    git clone --recurse-submodules --recursive https://${GERRIT_HOST}/gerrit/${GERRIT_PROJECT}.git
    pushd ${MYPROJECT}
        git log -1 --pretty=oneline
        if test x"" != x"${TARGETREFSPEC}" ; then
          git fetch origin ${TARGETREFSPEC}
          git reset --hard FETCH_HEAD
        else
          # try 
          # GERRIT_CHANGE_NUMBER="9551"
          # GERRIT_PATCHSET_NUMBER="2"
          if ( test x"" != x"${GERRIT_CHANGE_NUMBER}" -a x"" != x"${GERRIT_PATCHSET_NUMBER}" ) ; then
            pip install --user git-review
            git review -d ${GERRIT_CHANGE_NUMBER},${GERRIT_PATCHSET_NUMBER}
          fi
          #sleep 2
          # if not reset, we leave it to master
        fi

        # update git submodules
        if test -f .gitmodules ; then
           git submodule init && git submodule update
        fi

        git log -1 --pretty=oneline | more

        export DONE=0
        export isAUTOBUILD=0
	if [[ -f autobuild/agl/autobuild ]]
	then
            mkdir -p $(pwd)/package/
            chmod a+x autobuild/agl/autobuild
            AUTOBUILD_TARGET="package-all"
            if test x"halibut" = x"$GERRIT_BRANCH" -o x"icefish" = x"$GERRIT_BRANCH" ; then
                AUTOBUILD_TARGET="package"
            fi
            autobuild/agl/autobuild ${AUTOBUILD_TARGET} DEST=$(pwd)/package
            export isAUTOBUILD=1
            export DONE=1
	else
            echo "Your binding doesn't use an autobuild script. Please add it in your project."
	    echo "It has to be stored in your root project directory in autobuild/agl/autobuild file"
	    echo "and be able to generate an AGL package in the build root directory using the call:"
            echo "  autobuild/agl/autobuild package DEST=somefolder"
            echo ""
            echo "and for all subtypes ... debug, test, coverage:"
	    echo "  autobuild/agl/autobuild package-all DEST=somefolder"
	    exit 1
        fi
    ls -alh
    ls -alh package || true

    popd

    HANDLED="yes"
fi