Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

BuildAll.sh 3.6KB

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