release.sh 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #!/bin/bash
  2. set -e
  3. echo -n "Enter the version for this release: "
  4. read ver
  5. if [ ! $ver ]; then
  6. echo "Invalid version."
  7. exit
  8. fi
  9. name="select2"
  10. js="$name.js"
  11. mini="$name.min.js"
  12. css="$name.css"
  13. release="$name-$ver"
  14. tag="$ver"
  15. branch="build-$ver"
  16. curbranch=`git branch | grep "*" | sed "s/* //"`
  17. timestamp=$(date)
  18. tokens="s/@@ver@@/$ver/g;s/\@@timestamp@@/$timestamp/g"
  19. remote="github"
  20. echo "Pulling from origin"
  21. git pull
  22. echo "Updating Version Identifiers"
  23. sed -E -e "s/\"version\": \"([0-9\.]+)\",/\"version\": \"$ver\",/g" -i -- bower.json select2.jquery.json component.json composer.json package.json
  24. git add bower.json
  25. git add select2.jquery.json
  26. git add component.json
  27. git add composer.json
  28. git add package.json
  29. git commit -m "modified version identifiers in descriptors for release $ver"
  30. git push
  31. git branch "$branch"
  32. git checkout "$branch"
  33. echo "Tokenizing..."
  34. find . -name "$js" | xargs -I{} sed -e "$tokens" -i -- {}
  35. find . -name "$css" | xargs -I{} sed -e "$tokens" -i -- {}
  36. sed -e "s/latest/$ver/g" -i -- bower.json
  37. git add "$js"
  38. git add "$css"
  39. echo "Minifying..."
  40. echo "/*" > "$mini"
  41. cat LICENSE | sed "$tokens" >> "$mini"
  42. echo "*/" >> "$mini"
  43. curl -s \
  44. --data-urlencode "js_code@$js" \
  45. http://marijnhaverbeke.nl/uglifyjs \
  46. >> "$mini"
  47. git add "$mini"
  48. git commit -m "release $ver"
  49. echo "Tagging..."
  50. git tag -a "$tag" -m "tagged version $ver"
  51. git push "$remote" --tags
  52. echo "Cleaning Up..."
  53. git checkout "$curbranch"
  54. git branch -D "$branch"
  55. echo "Done"