#!/usr/bin/env bash # Determine whether a folder argument is provided if [[ $# -eq 4 ]]; then FOLDER="$1" ARTIFACT_ID="$2" OLD_VERSION="$3" NEW_VERSION="$4" elif [[ $# -eq 3 ]]; then FOLDER="." ARTIFACT_ID="$1" OLD_VERSION="$2" NEW_VERSION="$3" else echo "Usage: $0 [folder] " exit 1 fi # validate input if [[ -z "${FOLDER}" || -z "${ARTIFACT_ID}" || -z "${OLD_VERSION}" || -z "${NEW_VERSION}" ]]; then echo "Usage: $0 " exit 1 fi # check that ${FOLDER} is a directory if [[ ! -d "${FOLDER}" ]]; then echo "Error: ${FOLDER} is not a directory" exit 1 fi # start executing commands inside ${FOLDER} pushd "${FOLDER}" > /dev/null ARTIFACTS=$(ls -a | grep ${ARTIFACT_ID}-${NEW_VERSION}) if [[ -z "${ARTIFACTS}" ]]; then echo "Error: No ${ARTIFACT_ID}-${NEW_VERSION} files found in ${FOLDER}" exit 1 else mkdir -p apache-dist for ARTIFACT in ${ARTIFACTS}; do cp ${ARTIFACT} apache-dist/ done pushd apache-dist > /dev/null echo "Importing ${ARTIFACT_ID}-${NEW_VERSION} to Apache dist" svn import -m "Release ${ARTIFACT_ID}-${NEW_VERSION}" . https://dist.apache.org/repos/dist/release/sling echo "Preparing to remove previous version ${ARTIFACT_ID}-${OLD_VERSION}" OLD_ARTIFACTS=$(svn ls https://dist.apache.org/repos/dist/release/sling/ | grep "${ARTIFACT_ID}-${OLD_VERSION}" | while read line; do echo "https://dist.apache.org/repos/dist/release/sling/$line"; done) if [[ -z "${OLD_ARTIFACTS}" ]]; then echo "Error: No ${ARTIFACT_ID}-${OLD_VERSION} files found in Apache dist" exit 1 else svn delete -m "Remove old version ${ARTIFACT_ID}-${OLD_VERSION}" ${OLD_ARTIFACTS} fi popd > /dev/null fi popd > /dev/null echo "Done! Visit https://dist.apache.org/repos/dist/release/sling/ to validate."