Script run from cron to regularly update the master ZFS copies of the

ports and source trees.  Since we have >=1 consumer of these trees
that run frequently but do not insist on up-to-the-second trees, it
makes sense to "pre-update" them regularly and then then re-use in all
of the consumers, instead of potentially doing several updates
simultaneously or on demand.  Consumers can clone the ZFS snapshot
into their local filesystem which takes a couple of seconds instead of
minutes or tens of minutes for the CVS update.

We update to a date stamp instead of "." because this avoids
ambiguity of commits that happen while the tree update is in progress
(unfortunately it's slower).
This commit is contained in:
Kris Kennaway 2008-07-26 15:16:16 +00:00
parent 9ed197c29c
commit d1aea0930d
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=217604

View file

@ -0,0 +1,63 @@
#!/bin/sh
#
# Update the master ports and source trees that are used by package builds
# and other consumers
base=/a/snap
zbase=a/snap
srepo=/r/ncvs
prepo=/r/pcvs
stamp() {
fulldate=$1
date -j -f %+ "${fulldate}" +%Y%m%d%H%M%S
}
finish() {
err=$1
end=$(date +%s)
echo "Finished at $(date)"
len=$((end-begin))
echo "Duration = $(date -j -f %s +%H:%M:%S ${len})"
exit 1
}
begin=$(date +%s)
echo "Started at $(date)"
# We need to preserve group writability so portmgr group can write
umask 002
#cvsup -g /root/cvs-supfile || finish 1
cd $base/ports
fulldate=$(date)
cvs -Rq -d ${prepo} update -PdA -D "${fulldate}"
echo ${fulldate} > cvsdone
snapdate=$(stamp ${fulldate})
zfs snapshot ${zbase}/ports@${snapdate}
cd $base/src-HEAD
fulldate=$(date)
cvs -Rq -d ${srepo} update -PdA -D "${fulldate}"
echo ${fulldate} > cvsdone
snapdate=$(stamp ${fulldate})
zfs snapshot ${zbase}/src-HEAD@${snapdate}
cd $base/src-6
fulldate=$(date)
cvs -Rq -d ${srepo} update -PdA -D "${fulldate}" -r RELENG_6
echo ${fulldate} > cvsdone
snapdate=$(stamp ${fulldate})
zfs snapshot ${zbase}/src-6@${snapdate}
cd $base/src-7
fulldate=$(date)
cvs -Rq -d ${srepo} update -PdA -D "${fulldate}" -r RELENG_7
echo ${fulldate} > cvsdone
snapdate=$(stamp ${fulldate})
zfs snapshot ${zbase}/src-7@${snapdate}
finish 0