3 # use svn propset svn:keywords Revision to enable this
4 REVISION=$(echo '$Revision$' | sed -e 's,\$,,g' -e 's,^\w*:\s,,' )
8 CVSROOT=":pserver:anon@cvs.planet-lab.org:/cvs"
10 MAILTO="onelab-build@one-lab.org"
12 CHROOTBINDIR=/root/bin
14 # plc chroot runs in UTC
15 DATE=$(date -u +'%Y.%m.%d')
17 ### in the root context
18 function do_chroot () {
19 chroot /plc/devel/root su - build <<EOF
20 $CHROOTBINDIR/$COMMAND $@
24 # Notify recipient of failure
26 if [ -n "$MAILTO" ] ; then
27 tail -c 8k ${BUILD}/log-build.txt | mail -s "Failures for ${BUILD}" $MAILTO
33 touch ${BUILD}/log-success.stamp
34 if [ -n "$MAILTO" ] ; then
35 date | mail -s "Successfull build in ${BUILD}" $MAILTO
40 function create_base () {
42 while ! mkdir ${BASE}${i} 2>/dev/null ; do
43 [ -z ${i} ] && BASE=${BASE}.
45 if [ $i -gt 100 ] ; then
46 echo "$0: Failed to create release directory `pwd`/${BASE}${i}"
53 function use_base () {
54 [ ! -d $BASE ] && mkdir $BASE
55 if [ ! -d $BASE ] ; then
56 echo $COMMAND failed to create base $BASE
65 echo -n "============================== Starting $COMMAND on "
71 cvs -d $CVSROOT co -d $BASE build
73 echo "Running make IN build $(pwd)"
74 make ${MAKEOPTS[@]} TAG=${TAG} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C $BASE $MAKETARGETS
83 function show_env () {
88 echo MAKEVARS="${MAKEVARS[@]}"
89 echo MAKEOPTS="${MAKEOPTS[@]}"
93 echo "Usage: $COMMAND [option] make-targets"
94 echo "This is revision $REVISION"
95 echo "Supported options"
98 echo " -u : uses directory given as BASE as is, even if already exists"
99 echo " -e : exits (does nothing) if BASE already exists"
104 echo " -s MAKEVAR=value - spaces in value are not supported"
105 echo " -n passed to make"
111 if [ -d /plc/devel/data ] ; then
114 while getopts "vd:r:m:f:b:s:uenh" opt ; do
119 d) CVSROOT=$OPTARG ;;
126 s) MAKEVARS=(${MAKEVARS[@]} $OPTARG) ;;
127 n) MAILTO="" ; MAKEOPTS=(${MAKEOPTS[@]} -n) ;;
134 shift $(($OPTIND - 1))
139 ### set BASE from TAG, if unspecified
140 [ -z "$BASE" ] && BASE=${TAG}
142 if [ -n "$EXITIFOLD" -a -d "$BASE" ] ; then
143 echo "$COMMAND: -e : exits on existing base directory $BASE"
149 if [ -n "$USEOLD" ] ; then
152 BASE=${BASE}--${DATE}
157 build >> ${BUILD}/log-build.txt 2>&1