summaryrefslogtreecommitdiff
path: root/Tools
diff options
context:
space:
mode:
authorKris Kennaway <kris@FreeBSD.org>2008-07-26 15:16:16 +0000
committerKris Kennaway <kris@FreeBSD.org>2008-07-26 15:16:16 +0000
commitd1aea0930d93817f80b59468c3d5c3b35d0690cb (patch)
treebef985c78f8703bc594cff4f07eb6cedd2337117 /Tools
parentScript run from cron on the package clients to report metrics to ganglia. (diff)
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).
Notes
Notes: svn path=/head/; revision=217604
Diffstat (limited to 'Tools')
-rwxr-xr-xTools/portbuild/scripts/updatesnap63
1 files changed, 63 insertions, 0 deletions
diff --git a/Tools/portbuild/scripts/updatesnap b/Tools/portbuild/scripts/updatesnap
new file mode 100755
index 000000000000..f968c4f2e626
--- /dev/null
+++ b/Tools/portbuild/scripts/updatesnap
@@ -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