pkg-full-vsn.sh 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #!/usr/bin/env bash
  2. ## This script print the package full vsn based on current build environment
  3. ## Arg 1 is either 'vsn_exact' (default) or 'vsn_matcher'
  4. ## when 'vsn_exact' is given, the version number is the output of pkg-vsn.sh
  5. ## otherwise '*' is used for 'find' command to find old versions (as upgrade base)
  6. set -euo pipefail
  7. PROFILE="${1:-emqx}"
  8. VSN_MATCH="${2:-vsn_exact}"
  9. case "${VSN_MATCH}" in
  10. vsn_exact)
  11. PKG_VSN="${PKG_VSN:-$(./pkg-vsn.sh "$PROFILE")}"
  12. ;;
  13. vsn_matcher)
  14. PKG_VSN='*'
  15. ;;
  16. *)
  17. echo "$0 ERROR: second arg must "
  18. exit 1
  19. ;;
  20. esac
  21. # ensure dir
  22. cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")/.."
  23. OTP_VSN="${OTP_VSN:-$(./scripts/get-otp-vsn.sh)}"
  24. SYSTEM="$(./scripts/get-distro.sh)"
  25. UNAME="$(uname -m)"
  26. case "$UNAME" in
  27. x86_64)
  28. ARCH='amd64'
  29. ;;
  30. aarch64)
  31. ARCH='arm64'
  32. ;;
  33. arm*)
  34. ARCH=arm
  35. ;;
  36. esac
  37. if [[ "${WITH_ELIXIR:-}" == "yes" ]] || [[ "${IS_ELIXIR:-}" == "yes" ]] ; then
  38. ELIXIR_VSN="${ELIXIR_VSN:-$(./scripts/get-elixir-vsn.sh)}"
  39. FULL_VSN="${PKG_VSN}-elixir${ELIXIR_VSN}-otp${OTP_VSN}-${SYSTEM}-${ARCH}"
  40. else
  41. FULL_VSN="${PKG_VSN}-otp${OTP_VSN}-${SYSTEM}-${ARCH}"
  42. fi
  43. echo "${FULL_VSN}"