pkg-vsn.sh 851 B

1234567891011121314151617181920212223242526272829303132333435
  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. if [ -f EMQX_ENTERPRISE ]; then
  7. EDITION='enterprise'
  8. else
  9. EDITION='opensource'
  10. fi
  11. ## emqx_release.hrl is the single source of truth for release version
  12. RELEASE="$(grep -E "define.+EMQX_RELEASE.+${EDITION}" include/emqx_release.hrl | cut -d '"' -f2)"
  13. git_exact_vsn() {
  14. local tag
  15. tag="$(git describe --tags --match "[e|v]*" --exact 2>/dev/null)"
  16. echo "${tag#[e|v]}"
  17. }
  18. GIT_EXACT_VSN="$(git_exact_vsn)"
  19. if [ "$GIT_EXACT_VSN" != '' ]; then
  20. if [ "$GIT_EXACT_VSN" != "$RELEASE" ]; then
  21. echo "ERROR: Tagged $GIT_EXACT_VSN, but $RELEASE in include/emqx_release.hrl" 1>&2
  22. exit 1
  23. fi
  24. SUFFIX=''
  25. else
  26. SUFFIX="-$(git rev-parse HEAD | cut -b1-8)"
  27. fi
  28. echo "${RELEASE}${SUFFIX}"