relup-base-packages.sh 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. ROOT_DIR="$(pwd)"
  8. PROFILE="${1:-emqx}"
  9. export PROFILE
  10. case $PROFILE in
  11. "emqx")
  12. DIR='broker'
  13. EDITION='community'
  14. ;;
  15. "emqx-enterprise")
  16. DIR='enterprise'
  17. EDITION='enterprise'
  18. ;;
  19. "emqx-edge")
  20. DIR='edge'
  21. EDITION='edge'
  22. ;;
  23. *)
  24. echo "Unknown profile $PROFILE"
  25. exit 1
  26. ;;
  27. esac
  28. UNAME="$(uname -s)"
  29. case "$UNAME" in
  30. Darwin)
  31. SHASUM="shasum -a 256"
  32. ;;
  33. *)
  34. SHASUM="sha256sum"
  35. ;;
  36. esac
  37. BASE_VERSIONS="$("${ROOT_DIR}"/scripts/relup-base-vsns.sh "$EDITION" | xargs echo -n)"
  38. fullvsn() {
  39. env PKG_VSN="$1" "${ROOT_DIR}"/pkg-vsn.sh "$PROFILE" --long
  40. }
  41. mkdir -p _upgrade_base
  42. pushd _upgrade_base >/dev/null
  43. for tag in ${BASE_VERSIONS}; do
  44. filename="$PROFILE-$(fullvsn "${tag#[e|v]}").tar.gz"
  45. url="https://www.emqx.com/downloads/$DIR/$tag/$filename"
  46. echo "downloading ${filename} ..."
  47. ## if the file does not exist (not downloaded yet)
  48. ## and there is such a package to downlaod
  49. if [ ! -f "$filename" ] && curl -I -m 10 -o /dev/null -s -w "%{http_code}" "${url}" | grep -q -oE "^[23]+" ; then
  50. curl -L -o "${filename}" "${url}"
  51. curl -L -o "${filename}.sha256" "${url}.sha256"
  52. ## https://askubuntu.com/questions/1202208/checking-sha256-checksum
  53. echo "$(cat "${filename}.sha256") ${filename}" | $SHASUM -c || exit 1
  54. fi
  55. done
  56. popd >/dev/null