Files
lcdproc/scripts/nightly/make-nightly.sh
T
2006-10-14 13:54:00 +00:00

96 lines
3.3 KiB
Bash
Executable File

#!/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
SSH=/usr/bin/ssh
RSYNC=/usr/bin/rsync
#####
# Branch, can be stable-0-4-x, stable-0-5-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
# Debian-specific stuff
for dir in debian scripts/debian ; do
# Increase version number in debian/changelog accordingly
if [ -d "$dir" ] && [ -e "$dir/changelog" ]; then
${PERL} -MPOSIX -i -p -e '$date = strftime("%Y%m%d", localtime);
s/\((\d\.\d\.\d{1,2})([+~])cvs\d{8}(.*?)\)/(${1}${2}cvs${date}${3})/i if ($. == 1);' \
$dir/changelog
fi
# Make debian/rules executable
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
${RSYNC} -q \
lcdproc-CVS-${BRANCH}.tar.gz gfk@lcdproc.sourceforge.net:www-lcdproc/nightly/
${SSH} -q lcdproc.sourceforge.net "sh lcdproc-finish-nightly.sh ${BRANCH}"
# Cleanup
mv configure.in.temp configure.in
mv README.temp README
mv ChangeLog.temp ChangeLog
rm -f nightly-ChangeLog
rm -f nightly-cvsChanges.txt
mv lcdproc-CVS-${BRANCH}.tar.gz ../
sh autogen.sh >/dev/null