download-base-packages.sh 1.7 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-enterprise}"
  9. export PROFILE
  10. case $PROFILE in
  11. "emqx-enterprise")
  12. DIR='emqx-ee'
  13. EDITION='enterprise'
  14. ;;
  15. "emqx")
  16. echo "No relup for opensource edition"
  17. exit 0
  18. ;;
  19. *)
  20. echo "Unknown profile $PROFILE"
  21. exit 1
  22. ;;
  23. esac
  24. SYSTEM="$(./scripts/get-distro.sh)"
  25. case "$SYSTEM" in
  26. windows*)
  27. echo "NOTE: no_relup_for_windows"
  28. exit 0
  29. ;;
  30. macos*)
  31. SHASUM="shasum -a 256"
  32. ;;
  33. *)
  34. SHASUM="sha256sum"
  35. ;;
  36. esac
  37. BASE_VERSIONS="$("${ROOT_DIR}"/scripts/relup-build/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://packages.emqx.io/$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