bump-version.sh 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #!/bin/bash
  2. set -e
  3. if uname -s | grep -q Darwin; then
  4. SED=gsed
  5. else
  6. SED=sed
  7. fi
  8. NOW="$(date +'%B %d, %Y')"
  9. RED="\033[1;31m"
  10. GREEN="\033[0;32m"
  11. YELLOW="\033[1;33m"
  12. BLUE="\033[1;34m"
  13. PURPLE="\033[1;35m"
  14. CYAN="\033[1;36m"
  15. WHITE="\033[1;37m"
  16. RESET="\033[0m"
  17. QUESTION_FLAG="${GREEN}?"
  18. WARNING_FLAG="${YELLOW}!"
  19. NOTICE_FLAG="${CYAN}❯"
  20. LATEST_HASH=`git log --pretty=format:'%h' -n 1`
  21. BASE_VERSION=$(cat resources/package.json | jq '.version' | tr -d '"')
  22. VERSION_CODE=$(cat android/app/build.gradle | grep -oh 'versionCode [[:digit:]]*' | awk '{print $2}')
  23. BASE_LIST=(`echo $BASE_VERSION | tr '.' ' '`)
  24. V_MAJOR=${BASE_LIST[0]}
  25. V_MINOR=${BASE_LIST[1]}
  26. V_PATCH=${BASE_LIST[2]}
  27. echo -e "${NOTICE_FLAG} Current version: ${WHITE}$BASE_VERSION"
  28. echo -e "${NOTICE_FLAG} Latest commit hash: ${WHITE}$LATEST_HASH"
  29. echo -e "${NOTICE_FLAG} Current versionCode(Android) / buildVersion(MacOS): ${WHITE}$VERSION_CODE"
  30. # V_MINOR=$((V_MINOR + 1))
  31. # V_PATCH=0
  32. V_PATCH=$((V_PATCH + 1))
  33. SUGGESTED_VERSION="$V_MAJOR.$V_MINOR.$V_PATCH"
  34. echo -e "${QUESTION_FLAG} ${CYAN}Enter a version number [${WHITE}$SUGGESTED_VERSION${CYAN}]: "
  35. read INPUT_STRING
  36. if [ "$INPUT_STRING" = "" ]; then
  37. INPUT_STRING=$SUGGESTED_VERSION
  38. fi
  39. NEW_VERSION_CODE=$(($VERSION_CODE + 1))
  40. echo -e "${NOTICE_FLAG} Will set new version to be ${WHITE}$INPUT_STRING"
  41. echo -e "${NOTICE_FLAG} Will set new versionCode to be ${WHITE}$NEW_VERSION_CODE"
  42. NEW_VERSION=$INPUT_STRING
  43. $SED -i 's/defonce version ".*"/defonce version "'${NEW_VERSION}'"/g' src/main/frontend/version.cljs
  44. $SED -i 's/"version": ".*"/"version": "'${NEW_VERSION}'"/g' resources/package.json
  45. $SED -i 's/versionName ".*"/versionName "'${NEW_VERSION}'"/g' android/app/build.gradle
  46. $SED -i 's/versionCode .*/versionCode '${NEW_VERSION_CODE}'/g' android/app/build.gradle
  47. $SED -i 's/buildVersion: .*/buildVersion: '${NEW_VERSION_CODE}',/g' resources/forge.config.js
  48. $SED -i 's/MARKETING_VERSION = .*;/MARKETING_VERSION = '${NEW_VERSION}';/g' ios/App/App.xcodeproj/project.pbxproj
  49. git --no-pager diff -U0
  50. echo -e "${NOTICE_FLAG} Finished."