diff --git a/scripts/nightly/README b/scripts/nightly/README new file mode 100644 index 0000000..b4abe23 --- /dev/null +++ b/scripts/nightly/README @@ -0,0 +1,9 @@ + +lcdproc-finish-nightly.sh sit on the sourceforge server located at lcdproc.sf.net + +The two other scripts (generate-nightlies.sh and make-nightly.sh) sit on a local server and are run every night. +generate-nightlies.sh calls make-nightly.sh for each cvs branch. + +At the time of writing the nightly are generated on a PC running debian linux maintained by Guillaume Filion + + diff --git a/scripts/nightly/generate-nightlies.sh b/scripts/nightly/generate-nightlies.sh new file mode 100755 index 0000000..9b287f1 --- /dev/null +++ b/scripts/nightly/generate-nightlies.sh @@ -0,0 +1,10 @@ +#!/bin/sh +NIGHTLYDIR=/home/gfk/lcdproc/nightly +SSH=/usr/bin/ssh +MAKENIGHTLY=${NIGHTLYDIR}/make-nightly.sh +##### + +for branch in current stable-0-4-x; do + ${MAKENIGHTLY} $branch + ${SSH} -q lcdproc.sourceforge.net "sh lcdproc-finish-nightly.sh $branch" +done diff --git a/scripts/nightly/lcdproc-finish-nightly.sh b/scripts/nightly/lcdproc-finish-nightly.sh new file mode 100755 index 0000000..3857653 --- /dev/null +++ b/scripts/nightly/lcdproc-finish-nightly.sh @@ -0,0 +1,15 @@ +#!/bin/sh +GUNZIP=/bin/gunzip +BZIP2=/usr/bin/bzip2 +NIGHTLYDIR=~gfk/www-lcdproc/nightly/ +##### +BRANCH=$1 + +cd ${NIGHTLYDIR} + +# Make bzip2 archive +${GUNZIP} --stdout lcdproc-CVS-${BRANCH}.tar.gz > lcdproc-CVS-${BRANCH}.tar +${BZIP2} --force --quiet lcdproc-CVS-${BRANCH}.tar + +date > last-nightly.txt + diff --git a/scripts/nightly/make-nightly.sh b/scripts/nightly/make-nightly.sh new file mode 100755 index 0000000..400ce5d --- /dev/null +++ b/scripts/nightly/make-nightly.sh @@ -0,0 +1,105 @@ +#!/bin/sh +NIGHTLYDIR=/home/gfk/lcdproc/nightly +CVS=/usr/bin/cvs +MAKE=/usr/bin/make +DATE=`/bin/date` +PERL=/usr/bin/perl +GUNZIP=/bin/gunzip +BZIP2=/usr/bin/bzip2 +CVS2CL=/home/gfk/lcdproc/cvs2cl.pl +SCP=/usr/bin/scp +RSYNC=/usr/bin/rsync +##### +# Branch, can be stable-0-4-x or current +BRANCH=$1 + +cd ${NIGHTLYDIR}/${BRANCH}/ + +# Clean up (just in case) +rm -f lcdproc-*.tar.gz + +# Fetch of the changes +${CVS} update -d &> nightly-cvsChanges.txt + +# Add of the warning and changes to the README file +mv README README.temp +echo "################################################" > README +echo "# WARNING! WARNING! WARNING! WARNING! WARNING! #" >> README +echo "# #" >> README +echo "# This is an automated nightly distribution #" >> README +echo "# made with the ${BRANCH} CVS branch." >> README +echo "# Date: ${DATE} #" >> README +echo "# NO WARANTIES AT ALL. Expect this to crash. #" >> README +echo "# Please report problems to the mailing list. #" >> README +echo "# #" >> README +echo "# http://lcdproc.omnipotent.net/ #" >> README +echo "################################################" >> README +echo >> README +cat README.temp >> README +echo "Here's what CVS update said (Check ChangeLog for more infos):" >> README +cat nightly-cvsChanges.txt >> README + +# Produce a ChangeLog for yesterday +mv ChangeLog ChangeLog.temp +${CVS2CL} "-d'1 day ago<1 second ago'" --file nightly-ChangeLog &>/dev/null +echo "Changes since yesterday:" > ChangeLog +touch nightly-ChangeLog +cat nightly-ChangeLog >> ChangeLog + +# Change the version number to CVS-${BRANCH}-${DATE} +cp configure.in configure.in.temp +BRANCH=${BRANCH} \ +${PERL} -MPOSIX -i -p -e '$version = "CVS-".$ENV{BRANCH}."-".strftime("%Y%m%d", localtime); + s/(AM_INIT_AUTOMAKE\s*)\(\s*(\[?lcdproc\]?)\s*,\s*[\w\d.-]+\s*\)/$1($2, $version)/; + s/(AC_INIT\s*)\(\s*(\[?lcdproc\]?)\s*,\s*[\w\d.-]+\s*\)/$1($2, $version)/; + s/(AC_INIT\s*)\(\s*(\[?lcdproc\]?)\s*,\s*[\w\d.-]+(\s*[^)]+)\s*\)/$1($2, $version$3)/;' \ + configure.in + +# Increase version number in debian/changelog accordingly +# use 0.4.99+cvs.... for 0.5pre nightlies to be able to stay in the epoch when moving to 0.5 +for dir in debian scripts/debian ; do + if [ -d i"$dir" ] && [ -e "$dir/changelog" ; then + cp $dir/changelog $dir/changelog.temp + ${PERL} -MPOSIX -i -p -e '$date = strftime("%Y%m%d", localtime); + s/\(0\.4\.99\+cvs\d{8}\)/(0.4.99+cvs$date)/i if ($. == 1);' \ + $dir/changelog + fi +done + +# Make debian/rules executable +for dir in debian scripts/debian ; do + test -e $dir/rules && chmod +x $dir/rules +done + +# Re-generate the autotools files +sh autogen.sh >/dev/null +./configure --silent >/dev/null + +# Creation of the distribution +${MAKE} dist >/dev/null &>/dev/null +mv lcdproc-*.tar.gz lcdproc-CVS-${BRANCH}.tar.gz + +# Make bzip2 archive +# ${GUNZIP} --stdout lcdproc-CVS-${BRANCH}.tar.gz > lcdproc-CVS-${BRANCH}.tar +# ${BZIP2} lcdproc-CVS-${BRANCH}.tar + +# Upload +# scp -qB -i ${NIGHTLYDIR}/id_dsa lcdproc-CVS-${BRANCH}.tar.gz lcdproc-CVS-${BRANCH}.tar.bz2 gfk@lcdproc.sourceforge.net:www-lcdproc/nightly/ +#${SCP} -qB \ +${RSYNC} -q \ +lcdproc-CVS-${BRANCH}.tar.gz gfk@lcdproc.sourceforge.net:www-lcdproc/nightly/ +${RSYNC} -q \ +lcdproc-CVS-${BRANCH}.tar.gz gfk@cf-shell.sourceforge.net:smoketest/ + +# Cleanup +mv configure.in.temp configure.in +mv README.temp README +mv ChangeLog.temp ChangeLog +rm -f nightly-ChangeLog +rm -f nightly-cvsChanges.txt +for dir in debian scripts/debian ; do + test -e $dir/changelog.temp && mv $dir/changelog.temp $dir/changelog +done +#mv lcdproc-CVS-${BRANCH}.tar.bz2 ../ +mv lcdproc-CVS-${BRANCH}.tar.gz ../ +sh autogen.sh >/dev/null