download-base-packages.sh 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. #S3DIR='emqx-ee'
  13. #EDITION='enterprise'
  14. echo "No relup for now"
  15. exit 0
  16. ;;
  17. "emqx")
  18. echo "No relup for opensource edition"
  19. exit 0
  20. ;;
  21. *)
  22. echo "Unknown profile $PROFILE"
  23. exit 1
  24. ;;
  25. esac
  26. SYSTEM="$(./scripts/get-distro.sh)"
  27. case "$SYSTEM" in
  28. windows*)
  29. echo "NOTE: no_relup_for_windows"
  30. exit 0
  31. ;;
  32. macos*)
  33. SHASUM="shasum -a 256"
  34. ;;
  35. *)
  36. SHASUM="sha256sum"
  37. ;;
  38. esac
  39. BASE_VERSIONS="$("${ROOT_DIR}"/scripts/relup-build/base-vsns.sh "$EDITION" | xargs echo -n)"
  40. fullvsn() {
  41. env PKG_VSN="$1" "${ROOT_DIR}"/pkg-vsn.sh "$PROFILE" --long
  42. }
  43. mkdir -p _upgrade_base
  44. pushd _upgrade_base >/dev/null
  45. for tag in ${BASE_VERSIONS}; do
  46. filename="$PROFILE-$(fullvsn "${tag#[e|v]}").tar.gz"
  47. url="https://packages.emqx.io/$S3DIR/$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