version_number.sh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/usr/bin/env bash
  2. # GNU prefix command for mac os support (gsed, gsplit)
  3. GP=
  4. if [[ "${OSTYPE}" =~ darwin* ]]; then
  5. GP=g
  6. fi
  7. # give the ARCH name and it returns an integer as build number increment
  8. # arg1: ARCH
  9. arch_to_build_number() {
  10. ARCH=$1
  11. if [[ ${ARCH} == armv7 ]]; then
  12. echo 1
  13. elif [[ ${ARCH} == arm64_v8a ]]; then
  14. echo 2
  15. elif [[ ${ARCH} == x86 ]]; then
  16. echo 3
  17. elif [[ ${ARCH} == x86_64 ]]; then
  18. echo 4
  19. else
  20. echo 0
  21. fi
  22. }
  23. # version to version code
  24. # arg1: APP_VERSION (e.g. v1.2.3 or v1.2.3-rc4)
  25. # arg2: ARCH
  26. apk_version_code() {
  27. APP_VERSION=$1
  28. ARCH=$2
  29. ARCH_BUILD_NUMBER=$(arch_to_build_number ${ARCH})
  30. VERSION_MAJOR=$(echo "${APP_VERSION}" | cut -f 2 -dv | cut -f1 -d.)
  31. VERSION_MINOR=$(echo "${APP_VERSION}" | cut -f 2 -d.)
  32. VERSION_FIX=$(echo "${APP_VERSION}" | cut -f 3 -d. | cut -f1 -d-)
  33. VERSION_NUMBER=$(echo "${APP_VERSION}" | ${GP}sed -r -e 's/^.*-rc([0-9]+)/\1/;t;d') # v.1.2.3-rc4 => 4, v1.2.3 => NULL
  34. APK_VERSION_CODE=$(printf "%02d%02d%02d%02d%01d" ${VERSION_MAJOR} ${VERSION_MINOR} ${VERSION_FIX} ${VERSION_NUMBER:-99} ${ARCH_BUILD_NUMBER})
  35. echo ${APK_VERSION_CODE}
  36. }
  37. # version to version str
  38. # arg1: APP_VERSION (e.g. v1.2.3 or v1.2.3-rc4)
  39. # returns: 1.2.3 or 1.2.3 RC4
  40. app_version_str() {
  41. APP_VERSION=$1
  42. echo ${APP_VERSION} | ${GP}sed -r 's/^v//; s/-(rc[0-9]+)/ \U\1/'
  43. }