| #!/usr/bin/env bash |
| |
| # Utility script to get "ebuilder" |
| |
| BUILD_DIR=$1 |
| EBUILDER_HASH=$2 |
| |
| |
| if [[ -z "${BUILD_DIR}" ]] |
| then |
| echo "BUILD_DIR not supplied, will assume current directory, for testing." |
| BUILD_DIR=${PWD} |
| else |
| # normally will exist by now, but if not, we'll create it. |
| if [[ ! -d "${BUILD_DIR}" ]] |
| then |
| echo "WARNING: BUILD_DIR did not exist, so created it: $BUILD_DIR." |
| mkdir -p $BUILD_DIR |
| fi |
| fi |
| |
| if [[ -z "${EBUILDER_HASH}" ]] |
| then |
| echo "EBUILDER HASH, BRANCH, or TAG was not supplied, assuming 'master'" |
| EBUILDER_HASH=master |
| fi |
| |
| EBUILDER=eclipse.platform.releng.aggregator |
| |
| RC=0 |
| # don't clone, if already exists. |
| if [[ ! -d ${BUILD_DIR}/${EBUILDER} ]] |
| then |
| # Not sure 'REPO_AND_ACCESS' is defined in all possible scenerios, so we'll provide a default. |
| # It is in main scenerios, but not sure about things like "re-running unit tests at a later time". |
| # If directory doesn't exist yet, create it first, so we can assign proper access |
| # permissions for later "clean up" routines. |
| mkdir -p "${BUILD_DIR}/${EBUILDER}" |
| chmod -c g+ws "${BUILD_DIR}/${EBUILDER}" |
| git clone ${REPO_AND_ACCESS:-git://git.eclipse.org/gitroot}/platform/${EBUILDER} ${BUILD_DIR}/${EBUILDER} |
| RC=$? |
| if [[ $RC != 0 ]] |
| then |
| echo "[ERROR] Cloning EBUILDER returned non zero return code: $RC" |
| exit $RC |
| fi |
| else |
| echo "INFO: ebuilder directory found to exist. Not re-cloneing." |
| echo "INFO: Found: ${BUILD_DIR}/${EBUILDER}" |
| echo "INFO: But fetching to make sure up to date," |
| echo "INFO: before checking out specific HASH (which may make it detached)." |
| pushd ${BUILD_DIR}/${EBUILDER} |
| git fetch |
| RC=$? |
| if [[ $RC != 0 ]] |
| then |
| echo "[ERROR] Fetch EBUILDER returned non zero return code: $RC" |
| exit $RC |
| fi |
| git checkout $EBUILDER_HASH |
| RC=$? |
| if [[ $RC != 0 ]] |
| then |
| echo "[ERROR] Checking out EBUILDER for $EBUILDER_HASH returned non zero return code: $RC" |
| exit $RC |
| fi |
| popd |
| fi |
| |
| exit $RC |
| |