mirror of
https://gitee.com/dgiiot/dgiot.git
synced 2024-12-02 12:18:30 +08:00
75 lines
1.6 KiB
Bash
75 lines
1.6 KiB
Bash
|
#!/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 <EMQX_PROFILE> [<CURRENT_VERSION>]"
|
||
|
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
|