blob: 81b3f66093abcc48335f8261e4fa91c8d5d26368 [file] [log] [blame]
#!/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
#*******************************************************************************
# Utility to add "stats" to repos. For documentation, see
# https://wiki.eclipse.org/WTP/Releng/Tools/addRepoProperties
export PROMOTE_IMPL=${PROMOTE_IMPL:-${WORKSPACE}/sdk/promoteStableRelease/promoteImpl}
APP_NAME=org.eclipse.wtp.releng.tools.addRepoProperties
devworkspace=${devworkspace:-${PWD}/workspaceAddRepoProperties}
export REPO=$1
export REPO_TYPE=$2
export BUILD_ID=$3
export STATS_TAG_FEATURE_LIST=$4
#export STATS_TAG_VERSIONINDICATOR=$5
export STATS_TAG_SUFFIX=$5
source ${PROMOTE_IMPL}/promoteUtilities.shsource
echo "REPO: ${REPO}"
echo "REPO_TYPE: ${REPO_TYPE}"
echo "BUILD_ID: ${BUILD_ID}"
echo "STATS_TAG_FEATURE_LIST=${STATS_TAG_FEATURE_LIST}"
echo "STATS_TAG_SUFFIX: ${STATS_TAG_SUFFIX}"
if [[ -z "${REPO}" ]]
then
echo "ERROR: this script requires a repository to add properties to."
exit 1
fi
if [[ -z "${REPO_TYPE}" || -z "${BUILD_ID}" ]]
then
echo "WARNING: no mirror URL specified.";
MIRRORURL=""
else
MIRRORURL=/eclipse/updates/${REPO_TYPE}/${BUILD_ID}
fi
if [[ ! -z "${MIRRORURL}" ]]
then
# remember, the '&' should NOT be XML escaped here ... the p2 api (or underlying xml) will escape it.
MIRRORURL_ARG="http://www.eclipse.org/downloads/download.php?format=xml&file=${MIRRORURL}"
else
MIRRORURL_ARG=""
fi
# TODO: control with variable!
ART_REPO_NAME="Eclipse Project Repository for ${TRAIN_NAME}"
CON_REPO_NAME="Eclipse Project Repository for ${TRAIN_NAME}"
#ART_REPO_NAME=Eclipse Project Java 8 Patch Repository for Kepler SR2
#CON_REPO_NAME=Eclipse Project Java 8 Patch Repository for Kepler SR2
MIRRORS_URL_ARG=-Dp2MirrorsURL=${MIRRORURL_ARG}
ART_REPO_ARG=-DartifactRepoDirectory=${REPO}
CON_REPO_ARG=-DmetadataRepoDirectory=${REPO}
ART_REPO_NAME_ARG=-Dp2ArtifactRepositoryName=\"${ART_REPO_NAME}\"
CON_REPO_NAME_ARG=-Dp2MetadataRepositoryName=\"${CON_REPO_NAME}\"
if [[ -n "${STATS_TAG_FEATURE_LIST}" ]]
then
STATS_TAG_FEATURE_LIST_ARG="-DstatsTrackedArtifacts=\"${STATS_TAG_FEATURE_LIST}\""
# no sense setting these others, if features not set
# TODO: more error checking could be done, to warn, such if features list set, but other values not
STATS_TAG_VERSIONINDICATOR_ARG="-Dp2StatsURI=\"http://download.eclipse.org/stats${MIRRORURL}\""
if [[ -n ${STATS_TAG_SUFFIX} ]]
then
STATS_TAG_SUFFIX_ARG="-DstatsArtifactsSuffix=\"${STATS_TAG_SUFFIX}\""
fi
fi
echo "dev: ${BASH_SOURCE}"
echo "devworkspace: ${devworkspace}"
echo "JAVA_EXEC_DIR: ${JAVA_EXEC_DIR}"
echo "APP_NAME: ${APP_NAME}"
echo "MIRRORURL: ${MIRRORURL}"
echo "MIRRORURL_ARG: ${MIRRORURL_ARG}"
echo "MIRRORS_URL_ARG: ${MIRRORS_URL_ARG}"
echo "ART_REPO_ARG: ${ART_REPO_ARG}"
echo "CON_REPO_ARG: ${CON_REPO_ARG}"
echo "ART_REPO_NAME: ${ART_REPO_NAME}"
echo "CON_REPO_NAME: ${CON_REPO_NAME}"
echo "ART_REPO_NAME_ARG: ${ART_REPO_NAME_ARG}"
echo "CON_REPO_NAME_ARG: ${CON_REPO_NAME_ARG}"
echo "STATS_TAG_FEATURE_LIST_ARG: ${STATS_TAG_FEATURE_LIST_ARG}"
echo "STATS_TAG_VERSIONINDICATOR_ARG: ${STATS_TAG_VERSIONINDICATOR_ARG}"
echo "STATS_TAG_SUFFIX_ARG: ${STATS_TAG_SUFFIX_ARG}"
if [[ -x ${JAVA_CMD} ]]
then
echo
$JAVA_CMD -version
echo
findEclipseExe $BUILD_ID
RC=$?
if [[ $RC != 0 ]]
then
echo "non zero return code returned from findEclipse: $RC"
else
if [[ -x ${ECLIPSE_EXE} ]]
then
echo "found eclipse executable, will execute:"
echo "${ECLIPSE_EXE} --launcher.suppressErrors -nosplash -consolelog -debug -data ${devworkspace} -application ${APP_NAME} -vm ${JAVA_EXEC_DIR} -vmargs ${MIRRORS_URL_ARG} ${ART_REPO_ARG} ${CON_REPO_ARG} ${ART_REPO_NAME_ARG} ${CON_REPO_NAME_ARG} ${STATS_TAG_FEATURE_LIST_ARG} ${STATS_TAG_VERSIONINDICATOR_ARG} ${STATS_TAG_SUFFIX_ARG}"
# we may need to 'clean' here, since using an installation that has been moved?
#${ECLIPSE_EXE} --launcher.suppressErrors -nosplash -consolelog -debug -data ${devworkspace} -application ${APP_NAME} -vm ${JAVA_EXEC_DIR} -vmargs ${MIRRORS_URL_ARG} ${ART_REPO_ARG} ${CON_REPO_ARG} ${ART_REPO_NAME_ARG} ${CON_REPO_NAME_ARG} ${STATS_TAG_FEATURE_LIST_ARG} ${STATS_TAG_VERSIONINDICATOR_ARG} ${STATS_TAG_SUFFIX_ARG}
${ECLIPSE_EXE} --launcher.suppressErrors -nosplash -consolelog -debug -data ${devworkspace} -application ${APP_NAME} -vm ${JAVA_EXEC_DIR} -vmargs ${MIRRORS_URL_ARG} -Dp2ArtifactRepositoryName="${ART_REPO_NAME}" -Dp2MetadataRepositoryName="${CON_REPO_NAME}" ${ART_REPO_ARG} ${CON_REPO_ARG}
RC=$?
else
printf "\n\tERROR: %s\n\n" "The Eclipse commmand, ${ECLIPSE_EXE}, was not executable or not specified"
RC=1
fi
fi
else
printf "\n\tERROR: %s\n\n" "The Java commmand, ${JAVA_CMD}, was not executable or not specified"
RC=1
fi
echo "RC: $RC"
exit $RC