| #!/usr/bin/env bash |
| #******************************************************************************* |
| # Copyright (c) 2016 IBM Corporation and others. |
| # All rights reserved. This program and the accompanying materials |
| # are made available under the terms of the Eclipse Public License v1.0 |
| # which accompanies this distribution, and is available at |
| # http://www.eclipse.org/legal/epl-v10.html |
| # |
| # Contributors: |
| # David Williams - initial API and implementation |
| #******************************************************************************* |
| # |
| |
| # TODO: this script is called with repoScript=$( echo $SCRIPT_PATH/git-submodule-checkout.sh ) |
| # so any echo messages and exit codes are being "eaten" by the eval clause. |
| # But, not sure it needs to be evaled for repoScript? |
| # If needed, will need to write to "buildFailed_ type of file, then check for that file |
| # after its called. But, for now, will write to TRACE_OUTPUT |
| |
| REPOSITORIES_TXT="$1"; shift |
| name="$1"; shift |
| |
| VAL=$( grep "^${name}:" "$REPOSITORIES_TXT" | cut -f2 -d" ") |
| |
| # Here we count on $BUILD_TYPE being exported. TODO: make parameter later? |
| if [[ -n "$BUILD_TYPE" && "$BUILD_TYPE" == "N" ]] |
| then |
| if [[ "master" != $VAL ]] |
| then |
| echo "INFO: Branch forced to 'master', instead of '$VAL', since doing N-Build" >> ${TRACE_OUTPUT} |
| VAL="master" |
| fi |
| fi |
| |
| |
| if [ -z "$VAL" ]; then |
| echo "WARNING: No tag or branch specified for $name in repositories_${PATCH_OR_BRANCH_LABEL}.txt" >> ${TRACE_OUTPUT} |
| echo " Has a submodule been added? Perhaps just commented out?" >> ${TRACE_OUTPUT} |
| echo " Will use what ever was last added to aggregator" >> ${TRACE_OUTPUT} |
| # is this ever an error? |
| exit |
| fi |
| |
| # always fetch before checkout, to be sure new |
| # branches are in local repo (in case we are switching |
| # to a new branch or tag). |
| git fetch |
| RC=$? |
| if [[ $RC != 0 ]] |
| then |
| echo "ERROR: Return code of $RC during fetch of $name repository" >> ${TRACE_OUTPUT} |
| exit $RC |
| fi |
| |
| if [ -z "$(git tag -l $VAL)" ]; then |
| echo Updating branch $VAL |
| git checkout $VAL |
| RC=$? |
| if [[ $RC != 0 ]] |
| then |
| echo "ERROR: Return code of $RC during checkout of $VAL for repository $name" >> ${TRACE_OUTPUT} |
| exit $RC |
| fi |
| git pull |
| RC=$? |
| if [[ $RC != 0 ]] |
| then |
| echo "ERROR: Return code of $RC during pull for repository $name" >> ${TRACE_OUTPUT} |
| exit $RC |
| fi |
| else |
| echo Updating to tag $VAL |
| git checkout $VAL |
| RC=$? |
| if [[ $RC != 0 ]] |
| then |
| echo "ERROR: Return code of $RC during checkout of $VAL for repository $name" >> ${TRACE_OUTPUT} |
| exit $RC |
| fi |
| fi |