You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

BuildAll.sh 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. #!/bin/sh
  2. # cron doesn't seem to like doing this iself...
  3. . /etc/profile
  4. # Used for nightly.log to help diagnosing problems
  5. env
  6. # Path to WWW Directory
  7. WWWDIR="/home/dmdirc/www"
  8. # Path to trunk
  9. MYDIR="/home/dmdirc/google"
  10. # Path to ant binary
  11. ANT="/usr/bin/ant"
  12. # Path to svn binary
  13. SVN="/usr/bin/svn"
  14. # Path to jar binary
  15. JAR="/usr/bin/jar"
  16. cd ${MYDIR}
  17. /bin/sh $MYDIR/oblong.sh "Nightly Build" "Build Started"
  18. cd $MYDIR/
  19. $SVN update
  20. SVNREV=`$SVN info | grep Revision`
  21. SVNREV=${SVNREV##*: }
  22. # Substitute the version string
  23. awk '{gsub(/String VERSION = "SVN ("+SVN_REVISION+")"/,"String VERSION = \"Nightly - SVN Rev: '${SVNREV}'\"");print}' ${MYDIR}/src/com/dmdirc/Main.java > ${MYDIR}/src/com/dmdirc/Main.java.tmp
  24. mv ${MYDIR}/src/com/dmdirc/Main.java.tmp ${MYDIR}/src/com/dmdirc/Main.java
  25. # Substitute the update channel
  26. awk '{gsub(/UpdateChannel UPDATE_CHANNEL = UpdateChannel.NONE/,"UpdateChannel UPDATE_CHANNEL = UpdateChannel.NIGHTLY");print}' ${MYDIR}/src/com/dmdirc/Main.java > ${MYDIR}/src/com/dmdirc/Main.java.tmp
  27. mv ${MYDIR}/src/com/dmdirc/Main.java.tmp ${MYDIR}/src/com/dmdirc/Main.java
  28. # This no longer exists
  29. ## Substitue the release date
  30. #awk '{gsub(/int RELEASE_DATE = 0/,"int RELEASE_DATE = '`date +%Y%m%d`'");print}' ${MYDIR}/src/com/dmdirc/Main.java > ${MYDIR}/src/com/dmdirc/Main.java.tmp
  31. #mv ${MYDIR}/src/com/dmdirc/Main.java.tmp ${MYDIR}/src/com/dmdirc/Main.java
  32. # Archive old nightlies
  33. if [ `date +%d` = "01" ]; then
  34. echo "Archiving Last Months Nightlies"
  35. OLDDIR=${WWWDIR}/nightly/old/`date -d yesterday +%B%y | tr "[:upper:]" "[:lower:]"`
  36. mkdir -p ${OLDDIR}
  37. mv -fv ${WWWDIR}/nightly/*_`date -d yesterday +%Y%m`??_* ${OLDDIR}
  38. mv -fv ${WWWDIR}/nightly/*-`date -d yesterday +%Y%m`??_* ${OLDDIR}
  39. rm -Rf ${WWWDIR}/nightly/*_latest*
  40. fi
  41. # The date/svn prefix to add to the end of the file names of stuff
  42. FILEDATA=`date +%Y%m%d`_${SVNREV}
  43. # Copy default settings from www to trunk for compile (if they exist)
  44. REVERTLIST=""
  45. if [ -e "${HOME}/www/updates/" ]; then
  46. for updatedir in `ls -1 src/com/dmdirc/config/defaults/`; do
  47. src="${HOME}/www/updates/${updatedir}"
  48. if [ -e ${src} ]; then
  49. REVERTLIST=${REVERTLIST}" src/com/dmdirc/config/defaults/${updatedir}/"
  50. cp -Rfv ${src}/* src/com/dmdirc/config/defaults/${updatedir}/
  51. fi;
  52. done
  53. fi;
  54. # Build plugins/jar
  55. $ANT -buildfile $MYDIR/build.xml -k clean jar
  56. # Now revert the trunk so as not to break updates.
  57. for updatedir in ${REVERTLIST}; do
  58. ${SVN} revert ${updatedir}/*
  59. done;
  60. # Build installers
  61. if [ -e "$MYDIR/dist/DMDirc.jar" ]; then
  62. cd "${MYDIR}/installer"
  63. ./release.sh --jar "${MYDIR}/dist/DMDirc.jar" --opt "--tag ${FILEDATA}" trunk
  64. cd "${MYDIR}"
  65. fi;
  66. # Add plugins to jar
  67. $JAR -uvf "dist/DMDirc.jar" plugins
  68. if [ -f $MYDIR/dist/DMDirc.jar ]; then
  69. FILENAME=DMDirc_${FILEDATA}.jar
  70. mv "${MYDIR}/installer/output/DMDirc-Setup-${FILEDATA}.exe" "${WWWDIR}/nightly/DMDirc-Setup-${FILEDATA}.exe"
  71. mv "${MYDIR}/installer/output/DMDirc-Setup-${FILEDATA}.run" "${WWWDIR}/nightly/DMDirc-Setup-${FILEDATA}.run"
  72. mv "${MYDIR}/installer/output/DMDirc-${FILEDATA}.dmg" "${WWWDIR}/nightly/DMDirc-${FILEDATA}.dmg"
  73. rm -Rf "${MYDIR}/installer/output/DMDirc-${FILEDATA}.jar"
  74. cp $MYDIR/dist/DMDirc.jar /home/dmdirc/www/nightly/$FILENAME
  75. if [ -e "${WWWDIR}/nightly/${FILENAME}" ]; then
  76. ln -sf ${WWWDIR}/nightly/${FILENAME} $WWWDIR/nightly/DMDirc_latest.jar
  77. fi;
  78. if [ -e "${WWWDIR}/nightly/DMDirc-Setup-${FILEDATA}.run" ]; then
  79. ln -sf "${WWWDIR}/nightly/DMDirc-Setup-${FILEDATA}.run" $WWWDIR/nightly/DMDirc-Setup_latest.run
  80. fi;
  81. if [ -e "${WWWDIR}/nightly/DMDirc-Setup-${FILEDATA}.exe" ]; then
  82. ln -sf "${WWWDIR}/nightly/DMDirc-Setup-${FILEDATA}.exe" $WWWDIR/nightly/DMDirc-Setup_latest.exe
  83. fi;
  84. if [ -e "${WWWDIR}/nightly/DMDirc-${FILEDATA}.dmg" ]; then
  85. ln -sf "${WWWDIR}/nightly/DMDirc-${FILEDATA}.dmg" $WWWDIR/nightly/DMDirc_latest.dmg
  86. fi;
  87. cd ${MYDIR}
  88. /bin/sh $MYDIR/oblong.sh "Nightly Build" "Build Successful";
  89. /bin/sh $MYDIR/DoReports.sh
  90. else
  91. /bin/sh $MYDIR/oblong.sh "Nightly Build" "Build Failed"
  92. fi
  93. $SVN revert ${MYDIR}/src/com/dmdirc/Main.java