publish.sh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/usr/bin/env bash
  2. set -eu
  3. cd "$(dirname "$0")/.."
  4. VERSION="$1"
  5. DATE=$(date +%F)
  6. TAG="v$VERSION"
  7. update_version_in_source () {
  8. IFS=".-" read MAJOR MINOR REVISION EXTRA < <(echo "$VERSION")
  9. UNDERLINE=$(printf -- '-%.0s' $(seq 1 ${#TAG}))
  10. sed -i~ -bE "4s/HEAD/$TAG ($DATE)/; 5s/-+/$UNDERLINE/" CHANGELOG.md
  11. rm CHANGELOG.md*~
  12. sed -i~ -bE "s/\"version\":.*$/\"version\": \"$VERSION\",/" library.json
  13. rm library.json*~
  14. sed -i~ -bE "s/version=.*$/version=$VERSION/" library.properties
  15. rm library.properties*~
  16. sed -i~ -bE \
  17. -e "s/ARDUINOJSON_VERSION .*$/ARDUINOJSON_VERSION \"$VERSION\"/" \
  18. -e "s/ARDUINOJSON_VERSION_MAJOR .*$/ARDUINOJSON_VERSION_MAJOR $MAJOR/" \
  19. -e "s/ARDUINOJSON_VERSION_MINOR .*$/ARDUINOJSON_VERSION_MINOR $MINOR/" \
  20. -e "s/ARDUINOJSON_VERSION_REVISION .*$/ARDUINOJSON_VERSION_REVISION $REVISION/" \
  21. src/ArduinoJson/version.hpp
  22. rm src/ArduinoJson/version.hpp*~
  23. }
  24. commit_new_version () {
  25. git add src/ArduinoJson/version.hpp CHANGELOG.md library.json library.properties
  26. git commit -m "Set version to $VERSION"
  27. }
  28. add_tag () {
  29. CHANGES=$(awk '/\* /{ FOUND=1; print; next } { if (FOUND) exit}' CHANGELOG.md)
  30. git tag -m "ArduinoJson $VERSION"$'\n'"$CHANGES" "$TAG"
  31. }
  32. push () {
  33. git push --follow-tags
  34. }
  35. update_version_in_source
  36. commit_new_version
  37. add_tag
  38. push