relup-base-packages.sh 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #!/usr/bin/env bash
  2. ## This script helps to download relup base version packages
  3. if [[ -n "$DEBUG" ]]; then set -x; fi
  4. set -euo pipefail
  5. # ensure dir
  6. cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")/.."
  7. PROFILE="${1:-}"
  8. if [ "$PROFILE" = "" ]; then
  9. PROFILE="emqx"
  10. fi
  11. OTP_VSN=${OTP_VSN:-$(scripts/get-otp-vsn.sh)}
  12. case $PROFILE in
  13. "emqx")
  14. DIR='broker'
  15. EDITION='community'
  16. ;;
  17. "emqx-ee")
  18. DIR='enterprise'
  19. EDITION='enterprise'
  20. ;;
  21. "emqx-edge")
  22. DIR='edge'
  23. EDITION='edge'
  24. ;;
  25. esac
  26. SYSTEM="${SYSTEM:-$(./scripts/get-distro.sh)}"
  27. ARCH="${ARCH:-$(uname -m)}"
  28. case "$ARCH" in
  29. x86_64)
  30. ARCH='amd64'
  31. ;;
  32. aarch64)
  33. ARCH='arm64'
  34. ;;
  35. arm*)
  36. ARCH=arm
  37. ;;
  38. esac
  39. SHASUM="sha256sum"
  40. if [ "$SYSTEM" = "macos" ]; then
  41. SHASUM="shasum -a 256"
  42. fi
  43. mkdir -p _upgrade_base
  44. pushd _upgrade_base >/dev/null
  45. for tag in $(../scripts/relup-base-vsns.sh $EDITION | xargs echo -n); do
  46. filename="$PROFILE-$SYSTEM-${tag#[e|v]}-$ARCH.tar.gz"
  47. url="https://www.emqx.com/downloads/$DIR/$tag/$filename"
  48. echo "downloading ${filename} ..."
  49. ## if the file does not exist (not downloaded yet)
  50. ## and there is such a package to downlaod
  51. if [ ! -f "$filename" ] && curl -I -m 10 -o /dev/null -s -w "%{http_code}" "${url}" | grep -q -oE "^[23]+" ; then
  52. curl -L -o "${filename}" "${url}"
  53. curl -L -o "${filename}.sha256" "${url}.sha256"
  54. ## https://askubuntu.com/questions/1202208/checking-sha256-checksum
  55. echo "$(cat "${filename}.sha256") ${filename}" | $SHASUM -c || exit 1
  56. fi
  57. done
  58. popd >/dev/null