pkg-vsn.sh 987 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #!/usr/bin/env bash
  2. set -euo pipefail
  3. # This script prints the release version for emqx
  4. # ensure dir
  5. cd -P -- "$(dirname -- "$0")"
  6. case "${1:-}" in
  7. *enterprise*)
  8. RELEASE_EDITION="EMQX_RELEASE_EE"
  9. GIT_TAG_PREFIX="e"
  10. ;;
  11. *)
  12. RELEASE_EDITION="EMQX_RELEASE_CE"
  13. GIT_TAG_PREFIX="v"
  14. ;;
  15. esac
  16. ## emqx_release.hrl is the single source of truth for release version
  17. RELEASE="$(grep -E "define.+${RELEASE_EDITION}" apps/emqx/include/emqx_release.hrl | cut -d '"' -f2)"
  18. git_exact_vsn() {
  19. local tag
  20. tag="$(git describe --tags --match "${GIT_TAG_PREFIX}*" --exact 2>/dev/null)"
  21. echo "${tag//^[v|e]/}"
  22. }
  23. GIT_EXACT_VSN="$(git_exact_vsn)"
  24. if [ "$GIT_EXACT_VSN" != '' ]; then
  25. if [ "$GIT_EXACT_VSN" != "$RELEASE" ]; then
  26. echo "ERROR: Tagged $GIT_EXACT_VSN, but $RELEASE in include/emqx_release.hrl" 1>&2
  27. exit 1
  28. fi
  29. SUFFIX=''
  30. else
  31. SUFFIX="-$(git rev-parse HEAD | cut -b1-8)"
  32. fi
  33. echo "${RELEASE}${SUFFIX}"