160 lines
5.3 KiB
Bash
Executable File
160 lines
5.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
TOPDIR=/var/tmp
|
|
|
|
STATEFILE=$TOPDIR/nightlylivecdstatefile
|
|
# WARNING: MirrorManager must always give this mirror to the host running this script
|
|
STATEPATH=http://infrastructure.fedoraproject.org/pub/fedora/linux/development/13/x86_64/os/repodata/repomd.xml
|
|
|
|
getdatehash() {
|
|
DUMP=$(wget --no-cache -S $1 -O /dev/null 2>&1)
|
|
echo "$DUMP" | grep -q "HTTP/1.1 200 OK"
|
|
if [ $? -eq 0 ]; then
|
|
DATE=$(echo "$DUMP"|grep '^ Last-Modified'|sha1sum |awk {'print $1'})
|
|
else
|
|
echo "ERROR: $STATEPATH failed."
|
|
exit 1
|
|
fi
|
|
}
|
|
getdatehash $STATEPATH
|
|
|
|
if [ -f $STATEFILE ]; then
|
|
OLDDATE=$(cat $STATEFILE)
|
|
if [ "$OLDDATE" == "$DATE" ]; then
|
|
# No change, exit
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
# Save date hash
|
|
echo "$DATE" > $STATEFILE
|
|
echo "Saving date hash: $DATE"
|
|
|
|
# Check for running livecd-creator and abort if it is running
|
|
if ps -ef |grep -v grep |grep -q livecd-creator; then
|
|
echo "ERROR: Another livecd-creator is still running. Aborting."
|
|
exit 255
|
|
fi
|
|
|
|
if [ ! -d $TOPDIR/spin-kickstarts/ ]; then
|
|
cd $TOPDIR
|
|
git clone http://git.fedorahosted.org/git/spin-kickstarts.git
|
|
fi
|
|
|
|
# pull any git updates to kickstarts
|
|
|
|
cd $TOPDIR/spin-kickstarts/
|
|
git reset --hard
|
|
git pull
|
|
|
|
if [ ! -d $TOPDIR/nightly-composes ]; then
|
|
mkdir -p $TOPDIR/nightly-composes
|
|
fi
|
|
|
|
DATE=`date +%Y%m%d.%H`
|
|
|
|
# remove the previous days compose
|
|
find $TOPDIR/nightly-composes/ -name '*.iso' -exec rm -f '{}' \;
|
|
|
|
# loop though the valid spins
|
|
for i in `echo desktop design-suite xfce broffice.org kde electronic-lab games lxde soas security`
|
|
do
|
|
|
|
cd $TOPDIR/nightly-composes/
|
|
|
|
echo $i
|
|
|
|
if [ ! -d $TOPDIR/nightly-composes/$i ]; then
|
|
mkdir -p $TOPDIR/nightly-composes/$i
|
|
fi
|
|
if [ ! -d $TOPDIR/nightly-composes/$i/logs ]; then
|
|
mkdir -p $TOPDIR/nightly-composes/$i/logs
|
|
touch $TOPDIR/nightly-composes/$i/logs/SIZEHISTORY-i386
|
|
touch $TOPDIR/nightly-composes/$i/logs/SIZEHISTORY-x86_64
|
|
fi
|
|
|
|
cd $i
|
|
|
|
# compose f13 not rawhide for now.
|
|
sed -i 's/rawhide/fedora-13/g' $TOPDIR/spin-kickstarts/*.ks
|
|
|
|
# debrand
|
|
# Note this is not needed for 'official' test spins
|
|
#sed -i 's/^-fedora-logos/fedora-logos/' $TOPDIR/spin-kickstarts/fedora-livecd-$i.ks
|
|
#sed -i 's/^generic-logos//' $TOPDIR/spin-kickstarts/fedora-livecd-$i.ks
|
|
|
|
echo "INFO: $i i386 live image compose starting"
|
|
setarch i386 livecd-creator -c $TOPDIR/spin-kickstarts/fedora-live*-$i.ks -f $i-i386-$DATE > logs/$DATE-i386.log 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: $i i386 live image failed to compose on $DATE"
|
|
mv logs/$DATE-i386.log logs/$DATE-FAILED-i386.log
|
|
else
|
|
du $TOPDIR/nightly-composes/$i/$i-i386-$DATE.iso >> logs/SIZEHISTORY-i386
|
|
tail -2 logs/SIZEHISTORY-i386
|
|
rm -f CHECKSUM-i386
|
|
sha256sum $i-i386-$DATE.iso > CHECKSUM-i386
|
|
cat CHECKSUM-i386
|
|
echo "INFO: $i i386 live image compose finished OK"
|
|
fi
|
|
|
|
echo "INFO: $i x86_64 live image compose starting"
|
|
# Need to shorten the electronic-lab label to the 32 char limit
|
|
if [ "$i" = "electronic-lab" ]; then
|
|
livecd-creator -c $TOPDIR/spin-kickstarts/fedora-live*-$i.ks -f e-lab-x86_64-$DATE > logs/$DATE-x86_64.log 2>&1
|
|
else
|
|
livecd-creator -c $TOPDIR/spin-kickstarts/fedora-live*-$i.ks -f $i-x86_64-$DATE > logs/$DATE-x86_64.log 2>&1
|
|
fi
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: $i x86_64 live image failed to compose on $DATE"
|
|
mv logs/$DATE-x86_64.log logs/$DATE-FAILED-x86_64.log
|
|
else
|
|
if [ "$i" = "electronic-lab" ]; then
|
|
du $TOPDIR/nightly-composes/$i/e-lab-x86_64-$DATE.iso >> logs/SIZEHISTORY-x86_64
|
|
tail -2 logs/SIZEHISTORY-x86_64
|
|
rm -f CHECKSUM-x86_64
|
|
sha256sum e-lab-x86_64-$DATE.iso > CHECKSUM-x86_64
|
|
cat CHECKSUM-x86_64
|
|
else
|
|
du $TOPDIR/nightly-composes/$i/$i-x86_64-$DATE.iso >> logs/SIZEHISTORY-x86_64
|
|
tail -2 logs/SIZEHISTORY-x86_64
|
|
rm -f CHECKSUM-x86_64
|
|
sha256sum $i-x86_64-$DATE.iso > CHECKSUM-x86_64
|
|
cat CHECKSUM-x86_64
|
|
fi
|
|
echo "INFO: $i x86_64 live image compose finished OK"
|
|
fi
|
|
|
|
# remove old resize image
|
|
#rm -f /tmp/resize-image-*
|
|
done
|
|
|
|
# do aos spin
|
|
echo "INFO: aos i386 live image compose starting"
|
|
cd $TOPDIR/nightly-composes/aos/
|
|
setarch i386 livecd-creator -c $TOPDIR/spin-kickstarts/fedora-aos.ks -f aos-i386-$DATE > logs/$DATE-i386.log 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: aos i386 live image failed to compose on $DATE"
|
|
mv logs/$DATE-i386.log logs/$DATE-FAILED-i386.log
|
|
else
|
|
du $TOPDIR/nightly-composes/aos/aos-i386-$DATE.iso >> logs/SIZEHISTORY-i386
|
|
tail -2 logs/SIZEHISTORY-i386
|
|
rm -f CHECKSUM-i386
|
|
sha256sum aos-i386-$DATE.iso > CHECKSUM-i386
|
|
cat CHECKSUM-i386
|
|
echo "INFO: aos i386 live image compose finished OK"
|
|
fi
|
|
|
|
echo "INFO: aos x86_64 live image compose starting"
|
|
livecd-creator -c $TOPDIR/spin-kickstarts/fedora-aos.ks -f aos-x86_64-$DATE > logs/$DATE-x86_64.log 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
echo "ERROR: aos x86_64 live image failed to compose on $DATE"
|
|
mv logs/$DATE-x86_64.log logs/$DATE-FAILED-x86_64.log
|
|
else
|
|
du $TOPDIR/nightly-composes/aos/aos-x86_64-$DATE.iso >> logs/SIZEHISTORY-x86_64
|
|
tail -2 logs/SIZEHISTORY-x86_64
|
|
rm -f CHECKSUM-x86_64
|
|
sha256sum aos-x86_64-$DATE.iso > CHECKSUM-x86_64
|
|
cat CHECKSUM-x86_64
|
|
echo "INFO: aos x86_64 live image compose finished OK"
|
|
fi
|