3 # PlanetLab devbox release script. Intended to be used by scripts and
4 # crontabs to build nightly releases (default).
6 # $Id: devbox.sh,v 1.1 2005/03/02 07:21:05 mef Exp $
10 CVSROOT=:pserver:anon@cvs.planet-lab.org:/cvs
16 # Export certain variables
20 while getopts "d:r:m:b:x:h" opt ; do
37 echo "usage: `basename $0` [OPTION]..."
38 echo " -d directory CVS repository root (default $CVSROOT)"
39 echo " -r revision CVS revision to checkout (default $TAG)"
40 echo " -m address Notify recipient of failures (default: none)"
41 echo " -b base Run operations in specified base directory (default $BASE)"
47 # Base operations in specified directory
48 BASE=`mktemp -d /tmp/DEVBOX.XXXXXX` || { echo $"could not make temp file" >& 2; exit 1; }
52 # Redirect output from here
59 # Upload packages to boot server
60 SERVER=build@boot.planet-lab.org
61 REPOSITORY=/var/www/html/install-rpms
63 for RELEASE in devbox alpha-devbox beta-devbox ; do
64 TMPDEVBOXRELEASE=planetlab-${RELEASE}_`date +%Y.%m.%d`_tmp
65 DEVBOXRELEASE=planetlab-${RELEASE}
67 ssh $SERVER mkdir -p ${REPOSITORY}/${TMPDEVBOXRELEASE}
68 if [ $? -ne 0 ] ; then
69 echo "ERROR: mkdir -p ${REPOSITORY}/${TMPDEVBOXRELEASE} failed"
72 BUILT=$(echo $DEVBOXRELEASE | sed "s,\-devbox,,")
73 ssh $SERVER ln -nf ${REPOSITORY}/$BUILT/*.rpm ${REPOSITORY}/${TMPDEVBOXRELEASE}
75 mkdir -p ${BASE}/${DEVBOXRELEASE}
76 install -D -m 644 groups/${RELEASE}_yumgroups.xml ${BASE}/${DEVBOXRELEASE}/yumgroups.xml
77 scp ${BASE}/${DEVBOXRELEASE}/yumgroups.xml ${SERVER}:${REPOSITORY}/${TMPDEVBOXRELEASE}/yumgroups.xml
79 ssh $SERVER yum-arch ${REPOSITORY}/${TMPDEVBOXRELEASE} >/dev/null
81 ssh $SERVER mv ${REPOSITORY}/${DEVBOXRELEASE} ${REPOSITORY}/${DEVBOXRELEASE}-old
82 ssh $SERVER mv ${REPOSITORY}/${TMPDEVBOXRELEASE} ${REPOSITORY}/${DEVBOXRELEASE}
83 if [ $? -ne 0 ] ; then
84 ssh $SERVER mv ${REPOSITORY}/${DEVBOXRELEASE}-old ${REPOSITORY}/${DEVBOXRELEASE}
86 ssh $SERVER rm -rf ${REPOSITORY}/${DEVBOXRELEASE}-old