#!/usr/bin/env bash set -euo pipefail # ensure dir cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")/.." ## This script prints the relup upgrade base versions ## for the given EMQX edition (specified as first arg) ## ## The second argument is the current release version ## if not provided, it's taken from pkg-vsn.sh usage() { echo "Usage: $0 []" echo "e.g. $0 enterprise 4.3.10" exit 1 } parse_semver() { echo "$1" | tr '.|-' ' ' } EDITION="${1:-}" [ -z "${EDITION}" ] && usage ## Get the current release version ## e.g. ## 5.0.0 when GA ## 5.0.0-beta.3 when pre-release ## 5.0.0-beta.3.abcdef00 when developing CUR="${2:-}" if [ -z "${CUR}" ]; then CUR="$(./pkg-vsn.sh)" fi # shellcheck disable=SC2207 CUR_SEMVER=($(parse_semver "$CUR")) if [ "${#CUR_SEMVER[@]}" -lt 3 ]; then echo "$CUR is not Major.Minor.Patch" usage fi case "${EDITION}" in *enterprise*) GIT_TAG_PREFIX="e" RELUP_PATH_FILE="./data/relup-paths-ee.eterm" ;; *) GIT_TAG_PREFIX="v" RELUP_PATH_FILE="./data/relup-paths.eterm" ;; esac # must not be empty for MacOS (bash 3.x) TAGS=( 'dummy' ) TAGS_EXCLUDE=( 'dummy' ) base_versions="$(./scripts/relup-base-vsns.escript base-vsns "$CUR" "$RELUP_PATH_FILE" | xargs echo -n)" for vsn in ${base_versions}; do # shellcheck disable=SC2207 TAGS+=($(git tag -l "${GIT_TAG_PREFIX}${vsn}")) done for tag_to_del in "${TAGS_EXCLUDE[@]}"; do TAGS=( "${TAGS[@]/$tag_to_del}" ) done for tag in "${TAGS[@]}"; do if [ "$tag" != '' ]; then echo "$tag" fi done