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:
parent
9ed197c29c
commit
d1aea0930d
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=217604
1 changed files with 63 additions and 0 deletions
63
Tools/portbuild/scripts/updatesnap
Executable file
63
Tools/portbuild/scripts/updatesnap
Executable 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
|
Loading…
Reference in a new issue