#!/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. # export MVN_REPO=https://repo1.maven.org/maven2 export CMD_CURL=/usr/bin/curl export CMD_MD5SUM=/sbin/md5 export CMD_SHASUM=/usr/bin/shasum export CMD_TAR=/usr/bin/tar export CMD_UNZIP=/usr/bin/unzip download_media() { echo -n "Downloading ActiveMQ version: $1 type: $2..." CURL_DL_OUT=`$CMD_CURL -s -o apache-activemq-$1-bin.$2 $MVN_REPO/org/apache/activemq/apache-activemq/$1/apache-activemq-$1-bin.$2` echo "done" for kind in sha1 md5 do echo -n "Downloading ActiveMQ version: $1 type: $2 $kind checksum ..." CURL_DL_CHKSUM_OUT=`$CMD_CURL -s -o apache-activemq-$1-bin.$2.$kind $MVN_REPO/org/apache/activemq/apache-activemq/$1/apache-activemq-$1-bin.$2.$kind` echo "done" echo -n "Validating $kind checksum ..." if [ $kind = "sha1" ]; then DL_CHKSUM=`$CMD_SHASUM apache-activemq-$1-bin.$2 | cut -f1 -d" "` elif [ $kind = "md5" ]; then DL_CHKSUM=`$CMD_MD5SUM -q apache-activemq-$1-bin.$2 | cut -f1 -d" "` fi VL_CHKSUM=`cut -f1 -d" " apache-activemq-$1-bin.$2.$kind` if [[ "$DL_CHKSUM" != "$VL_CHKSUM" ]]; then echo "ERROR: $kind checksum mismatch expected: $VL_CHKSUM calculated: $DL_CHKSUM" exit 1; fi echo "done" done } extract_media() { echo -n "Extracting $2 media ..." if [ $2 = "tar.gz" ]; then EXTRACT_OUT=`$CMD_TAR xzf apache-activemq-$1-bin.$2` elif [ $2 = "zip" ]; then EXTRACT_OUT=`$CMD_UNZIP apache-activemq-$1-bin.$2` fi if [[ $? -ne 0 ]]; then echo "$2 extract failed!" exit 1 fi echo "done" } cleanup_media() { echo -n "Cleaning up $2 media ...": rm apache-activemq-$1-bin.$2.sha1 rm apache-activemq-$1-bin.$2.md5 rm apache-activemq-$1-bin.$2 rm -rf apache-activemq-$1 echo "done" } if [ -z ${1+x} ]; then echo "Using default maven repo: $MVN_REPO" else export MVN_REPO=$1 echo "Using maven repo: $MVN_REPO" fi VERSIONS=() CURL_OUT=`$CMD_CURL -o index.html -s $MVN_REPO/org/apache/activemq/apache-activemq/` for i in `grep href index.html | grep -v maven-metadata | grep -v "\.\." | cut -f2 -d= | cut -f1 -d"/" | cut -f2 -d"\"" | sort -rV | grep -v -E '5.1.[0-9+]|5.8'`; do if [[ $i =~ 5.1[5-9]+ ]]; then VERSIONS+=($i) fi done rm index.html VERSIONS+=("Quit") PS3='Install ActiveMQ version: ' select opt in "${VERSIONS[@]}" do case $opt in "Quit") break;; *) for type in tar.gz zip do download_media $opt $type extract_media $opt $type cleanup_media $opt $type done break;; esac done