blob: a81b3bea0e3be79ad1d04a8c306374ed8bdcd86d [file] [log] [blame]
#!/usr/bin/env bash
#*******************************************************************************
# Copyright (c) 2019 Eclipse Foundation and others.
# This program and the accompanying materials are made available
# under the terms of the Eclipse Public License 2.0
# which is available at http://www.eclipse.org/legal/epl-v20.html,
# or the MIT License which is available at https://opensource.org/licenses/MIT.
# SPDX-License-Identifier: EPL-2.0 OR MIT
#*******************************************************************************
# This script updates the latest repo (https://download.eclipse.org/releases/latest) to point
# to the current release repo.
# Bash strict-mode
set -o errexit
set -o nounset
set -o pipefail
IFS=$'\n\t'
script_name="$(basename ${0})"
release_name=${1:-}
releases_root_dir="/home/data/httpd/download.eclipse.org/releases"
local_dir_name="latest"
timestamp=$(date +%s%3N)
ssh_remote="genie.simrel@projects-storage.eclipse.org"
usage() {
printf "Usage: %s release_name\n" "$script_name"
printf "\t%-16s release name (e.g. 2019-06).\n" "release_name"
}
if [[ -z "${release_name}" ]]; then
printf "ERROR: release name must not be empty\n"
usage
exit 1
fi
create_latest_repo() {
#create local dir
mkdir -p ${local_dir_name}
pushd ${local_dir_name}
echo "Creating p2.index..."
cat <<EOF > p2.index
version=1
metadata.repository.factory.order=compositeContent.xml
artifact.repository.factory.order=compositeArtifacts.xml
EOF
echo "Creating metadata..."
#create compositeArtifacts.xml
cat <<EOG > compositeArtifacts.xml
<?xml version='1.0' encoding='UTF-8'?>
<?compositeArtifactRepository version='1.0.0'?>
<repository name='Eclipse Repository' type='org.eclipse.equinox.internal.p2.artifact.repository.CompositeArtifactRepository' version='1.0.0'>
<properties size='3'>
<property name='p2.timestamp' value='${timestamp}'/>
<property name='p2.compressed' value='true'/>
<property name='p2.atomic.composite.loading' value='true'/>
</properties>
<children size='1'>
<child location='https://download.eclipse.org/releases/${release_name}/'/>
</children>
</repository>
EOG
#create compositeContent.xml
cat <<EOH > compositeContent.xml
<?xml version='1.0' encoding='UTF-8'?>
<?compositeMetadataRepository version='1.0.0'?>
<repository name='Eclipse Repository' type='org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepository' version='1.0.0'>
<properties size='3'>
<property name='p2.timestamp' value='${timestamp}'/>
<property name='p2.compressed' value='true'/>
<property name='p2.atomic.composite.loading' value='true'/>
</properties>
<children size='1'>
<child location='https://download.eclipse.org/releases/${release_name}/'/>
</children>
</repository>
EOH
echo "compositeArtifacts.xml"
cat compositeArtifacts.xml
echo "compositeContent.xml"
cat compositeContent.xml
echo "Creating jars..."
zip compositeArtifacts.jar compositeArtifacts.xml
zip compositeContent.jar compositeContent.xml
rm *.xml
echo "Check dir structure..."
ls -al
popd
}
create_latest_repo
echo "SCPing to download server..."
scp -r ${local_dir_name} ${ssh_remote}:${releases_root_dir}/
echo "Done."