dgiot/scripts/relup-base-packages.sh
2022-12-29 18:44:36 +08:00

91 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env bash
## This script helps to download relup base version packages
if [[ -n "$DEBUG" ]]; then
set -x
fi
set -euo pipefail
PROFILE="${1}"
if [ "$PROFILE" = "" ]; then
PROFILE="emqx"
fi
case $PROFILE in
"emqx")
DIR='emqx-ce'
EDITION='community'
;;
"emqx-ee")
DIR='emqx-ee'
EDITION='enterprise'
;;
"emqx-edge")
DIR='emqx-edge'
EDITION='edge'
;;
esac
SYSTEM="${SYSTEM:-$(./scripts/get-distro.sh)}"
OTP_VSN="${OTP_VSN:-$(./scripts/get-otp-vsn.sh)}"
ARCH="${ARCH:-$(uname -m)}"
case "$ARCH" in
x86_64)
ARCH='amd64'
;;
aarch64)
ARCH='arm64'
;;
arm*)
ARCH=arm
;;
esac
case "$SYSTEM" in
windows*)
echo "WARNING: skipped downloading relup base for windows because we do not support relup for windows yet."
exit 0
;;
macos*)
SHASUM="shasum -a 256"
;;
*)
SHASUM="sha256sum"
;;
esac
# ensure dir
cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")/.."
mkdir -p _upgrade_base
pushd _upgrade_base
otp_vsn_for() {
../scripts/relup-base-vsns.escript otp-vsn-for "${1#[e|v]}" ../data/relup-paths.eterm
}
for tag in $(../scripts/relup-base-vsns.sh $EDITION | xargs echo -n); do
filename="$PROFILE-${tag#[e|v]}-otp$(otp_vsn_for "$tag")-$SYSTEM-$ARCH.zip"
url="https://packages.emqx.io/$DIR/$tag/$filename"
echo "downloading base package from ${url} ..."
if [ -f "$filename" ]; then
echo "file $filename already downloaded; skikpped"
continue
fi
echo "downloading base package from ${url} ..."
curl -L -o "${filename}" "${url}"
if [ "$SYSTEM" != "centos6" ]; then
echo "downloading sha256 sum from ${url}.sha256 ..."
curl -L -o "${filename}.sha256" "${url}.sha256"
SUMSTR=$(cat "${filename}.sha256")
echo "got sha265sum: ${SUMSTR}"
## https://askubuntu.com/questions/1202208/checking-sha256-checksum
echo "${SUMSTR} ${filename}" | $SHASUM -c || exit 1
fi
done
popd