| #!/bin/bash |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| |
| # Setting the script to fail if anything goes wrong |
| set -e -u -o pipefail |
| shopt -s failglob |
| |
| error () { |
| echo "" |
| echo "** ERROR: $@ **" |
| echo "" |
| echo "Usage: ./scripts/release/update-artemis-docs.sh <path.to/activemq-artemis> <previous-release-version> <new-release-version>" |
| echo "" |
| echo "Must be run from within an activemq-website checkout root." |
| echo "" |
| echo "Example:" |
| echo "cd <path.to>/activemq-website" |
| echo "./scripts/release/update-artemis-docs.sh ../release-work/activemq-artemis 2.30.0 2.31.0" |
| echo "" |
| exit 64 |
| } |
| |
| if [ ! -f serve.sh ] || [ ! -f _config.yml ]; then |
| error "This script has to be run from inside the root of an activemq-website checkout" |
| exit 1 |
| fi |
| WEBSITE_DIR="$( pwd )" |
| |
| if [ "$#" -lt 3 ]; then |
| error "The Artemis release process checkout, prior Artemis release, and new Artemis release versions must all be specified" |
| exit 1 |
| fi |
| |
| ARTEMIS_DIR="$( cd -- "$1" >/dev/null 2>&1 ; pwd -P )" |
| PRIOR_VERSION="$2" |
| NEW_VERSION="$3" |
| |
| if [ ! -d "$ARTEMIS_DIR" ] || [ ! -d "$ARTEMIS_DIR/artemis-server" ] || [ ! -f "$ARTEMIS_DIR/.asf.yaml" ]; then |
| error "ERROR: The provided activemq-artemis release process path does not point to an activemq-artemis checkout" |
| exit 1 |
| fi |
| |
| if [ ! -d "$ARTEMIS_DIR/target" ] || [ ! -d "$ARTEMIS_DIR/target/checkout" ]; then |
| error "ERROR: The provided activemq-artemis release path does not contain the release process target checkout: $ARTEMIS_DIR/target/checkout" |
| exit 1 |
| fi |
| |
| RELEASE_DIR="$ARTEMIS_DIR/target/checkout" |
| |
| LATEST_DOCS=$WEBSITE_DIR/src/components/artemis/documentation/latest/ |
| PRIOR_DOCS=$WEBSITE_DIR/src/components/artemis/documentation/$PRIOR_VERSION/ |
| |
| LATEST_JAVADOCS=$WEBSITE_DIR/src/components/artemis/documentation/javadocs/javadoc-latest/ |
| NEW_DOCS=$RELEASE_DIR/artemis-website/target/classes/user-manual/ |
| NEW_JAVADOCS=$RELEASE_DIR/artemis-website/target/apidocs/ |
| |
| |
| |
| echo "Moving previous release docs, from $LATEST_DOCS to $PRIOR_DOCS" |
| mv $LATEST_DOCS $PRIOR_DOCS |
| |
| echo "Copying new release docs, from $NEW_DOCS to $LATEST_DOCS" |
| cp -aR $NEW_DOCS. $LATEST_DOCS |
| |
| echo "Clearing previous release javadocs, from $LATEST_JAVADOCS" |
| rm -rf $LATEST_JAVADOCS |
| |
| echo "Copying new release javadocs, from $NEW_JAVADOCS to $LATEST_JAVADOCS" |
| cp -aR $NEW_JAVADOCS. $LATEST_JAVADOCS |
| |
| git add $LATEST_DOCS $PRIOR_DOCS $LATEST_JAVADOCS |
| |
| echo "" |
| echo "Updates complete, check over git status over and commit" |