bump-version.sh 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #!/bin/bash
  2. NOW="$(date +'%B %d, %Y')"
  3. RED="\033[1;31m"
  4. GREEN="\033[0;32m"
  5. YELLOW="\033[1;33m"
  6. BLUE="\033[1;34m"
  7. PURPLE="\033[1;35m"
  8. CYAN="\033[1;36m"
  9. WHITE="\033[1;37m"
  10. RESET="\033[0m"
  11. LATEST_HASH=`git log --pretty=format:'%h' -n 1`
  12. QUESTION_FLAG="${GREEN}?"
  13. WARNING_FLAG="${YELLOW}!"
  14. NOTICE_FLAG="${CYAN}❯"
  15. # ADJUSTMENTS_MSG="${QUESTION_FLAG} ${CYAN}Now you can make adjustments to ${WHITE}CHANGELOG.md${CYAN}. Then press enter to continue."
  16. PUSHING_MSG="${NOTICE_FLAG} Pushing new version to the ${WHITE}origin${CYAN}..."
  17. if [ -f VERSION ]; then
  18. BASE_STRING=`cat VERSION`
  19. BASE_LIST=(`echo $BASE_STRING | tr '.' ' '`)
  20. V_MAJOR=${BASE_LIST[0]}
  21. V_MINOR=${BASE_LIST[1]}
  22. V_PATCH=${BASE_LIST[2]}
  23. echo -e "${NOTICE_FLAG} Current version: ${WHITE}$BASE_STRING"
  24. echo -e "${NOTICE_FLAG} Latest commit hash: ${WHITE}$LATEST_HASH"
  25. V_MINOR=$((V_MINOR + 1))
  26. V_PATCH=0
  27. SUGGESTED_VERSION="$V_MAJOR.$V_MINOR.$V_PATCH"
  28. echo -ne "${QUESTION_FLAG} ${CYAN}Enter a version number [${WHITE}$SUGGESTED_VERSION${CYAN}]: "
  29. read INPUT_STRING
  30. if [ "$INPUT_STRING" = "" ]; then
  31. INPUT_STRING=$SUGGESTED_VERSION
  32. fi
  33. echo -e "${NOTICE_FLAG} Will set new version to be ${WHITE}$INPUT_STRING"
  34. echo $INPUT_STRING > VERSION
  35. # echo "## $INPUT_STRING ($NOW)" > tmpfile
  36. # git log --pretty=format:" - %s" "v$BASE_STRING"...HEAD >> tmpfile
  37. # echo "" >> tmpfile
  38. # echo "" >> tmpfile
  39. # cat CHANGELOG.md >> tmpfile
  40. # mv tmpfile CHANGELOG.md
  41. # echo -e "$ADJUSTMENTS_MSG"
  42. # read
  43. echo -e "$PUSHING_MSG"
  44. # git add CHANGELOG.md
  45. git add VERSION
  46. git commit -m "Bump version to ${INPUT_STRING}."
  47. git tag -a -m "Tag version ${INPUT_STRING}." "v$INPUT_STRING"
  48. git push origin --tags
  49. else
  50. echo -e "${WARNING_FLAG} Could not find a VERSION file."
  51. echo -ne "${QUESTION_FLAG} ${CYAN}Do you want to create a version file and start from scratch? [${WHITE}y${CYAN}]: "
  52. read RESPONSE
  53. if [ "$RESPONSE" = "" ]; then RESPONSE="y"; fi
  54. if [ "$RESPONSE" = "Y" ]; then RESPONSE="y"; fi
  55. if [ "$RESPONSE" = "Yes" ]; then RESPONSE="y"; fi
  56. if [ "$RESPONSE" = "yes" ]; then RESPONSE="y"; fi
  57. if [ "$RESPONSE" = "YES" ]; then RESPONSE="y"; fi
  58. if [ "$RESPONSE" = "y" ]; then
  59. echo "0.1.0" > VERSION
  60. # echo "## 0.1.0 ($NOW)" > CHANGELOG.md
  61. # git log --pretty=format:" - %s" >> CHANGELOG.md
  62. # echo "" >> CHANGELOG.md
  63. # echo "" >> CHANGELOG.md
  64. # echo -e "$ADJUSTMENTS_MSG"
  65. # read
  66. echo -e "$PUSHING_MSG"
  67. # git add CHANGELOG.md
  68. git add VERSION
  69. git commit -m "Add VERSION and CHANGELOG.md files, Bump version to v0.1.0."
  70. git tag -a -m "Tag version 0.1.0." "v0.1.0"
  71. git push origin --tags
  72. fi
  73. fi
  74. echo -e "${NOTICE_FLAG} Finished."