release.sh 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/bin/bash
  2. function usage() {
  3. echo "Usage $0: [Options] Major Minor Patch [Build]"
  4. echo ""
  5. echo "Options:"
  6. echo "-h Display this help message"
  7. echo "-q Build against this branch of QT"
  8. }
  9. while getopts hq: O; do
  10. case "$O" in
  11. [?h])
  12. usage;
  13. exit 1
  14. ;;
  15. q)
  16. shift 2
  17. QB="-q $OPTARG"
  18. ;;
  19. esac
  20. done
  21. git status
  22. if [[ $1 == "" ]] || [[ $2 == "" ]] || [[ $3 == "" ]]; then
  23. echo "Bad version"
  24. exit 1
  25. fi
  26. v="$1.$2.$3"
  27. if [[ "$4" != "" ]]; then
  28. v="${v}_$4"
  29. fi
  30. echo "About to release $v"
  31. read -p "Are you sure you are ready: " N
  32. [ "$N" != "YES" ] && exit
  33. sed -ri "s/MAJOR_VERSION=[0-9]+ MINOR_VERSION=[0-9]+ PATCH_VERSION=[0-9]+ BUILD=.*/MAJOR_VERSION=$1 MINOR_VERSION=$2 PATCH_VERSION=$3 BUILD=\"$4\"/" wkhtmltopdf.pro || exit 1
  34. HEAD="$(git log --pretty=oneline -n 1 | sed -e 's/ .*//')"
  35. git commit -m "TEMPORERY DO NOT COMMIT $v" wkhtmltopdf.pro
  36. rm -rf wkhtmltopdf-i386 wkhtmltopdf-amd64 wkhtmltopdf.exe wkhtmltopdf
  37. ./scripts/static-build.sh $QB linux-i386 || (echo Build failed; git reset $HEAD --hard; exit 1)
  38. cp wkhtmltopdf-i386 wkhtmltopdf
  39. if ! ./scripts/test.sh -q; then
  40. echo "Test failed"
  41. git reset $HEAD --hard
  42. exit 1
  43. fi
  44. ./wkhtmltopdf-i386 --readme > README
  45. ./scripts/static-build.sh $QB linux-amd64 || (echo Build failed; git reset $HEAD --hard; exit 1)
  46. ./scripts/static-build.sh $QB windows || (echo Build failed; git reset $HEAD --hard; exit 1)
  47. git commit --amend -m "Version $v" wkhtmltopdf.pro README
  48. git tag "$v"
  49. rm -rf "release-$v"
  50. mkdir "release-$v"
  51. git checkout-index --prefix="./release-$v/wkhtmltopdf-$v/" -a
  52. wget "http://code.google.com/p/wkhtmltopdf/wiki/ChangeLog" -qO - | sed -nre 's/.*<p>CHANGELOGBEGIN[ ]*<\/p>(.*)<p>CHANGELOGEND.*/\1/p' | html2text > "./release-$v/wkhtmltopdf-$v/changelog"
  53. tar -cjvf "release-$v/wkhtmltopdf-$v.tar.bz2" -C "release-$v" "wkhtmltopdf-$v"
  54. cp wkhtmltopdf.exe "release-$v/wkhtmltopdf.exe"
  55. m4 -D "WKVERSION=$v" wkhtmltopdf.nsi.m4 > "release-$v/wkhtmltopdf.nsi"
  56. tar -cjvf "release-$v/wkhtmltopdf-$v-static-i386.tar.bz2" wkhtmltopdf-i386
  57. tar -cjvf "release-$v/wkhtmltopdf-$v-static-amd64.tar.bz2" wkhtmltopdf-amd64
  58. cd "release-$v"
  59. for x in libgcc_s_dw2-1.dll ssleay32.dll libeay32.dll EnvVarUpdate.nsh; do
  60. [ -f "$x" ] || wget http://wkhtmltopdf.googlecode.com/files/$x -O $x
  61. done
  62. makensis wkhtmltopdf.nsi