3 # use svn propset svn:keywords Revision to enable this
4 REVISION=$(echo '$Revision$' | sed -e 's,\$,,g' -e 's,^\w*:,,' )
8 CVSROOT=":pserver:anon@cvs.planet-lab.org:/cvs"
10 MAILTO="thierry.parmentelat@sophia.inria.fr"
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 $CHROOTDIR/$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 if [ -n "$MAILTO" ] ; then
34 date | mail -s "Successfull build in ${BUILD}" $MAILTO
39 function create_base () {
40 BASE=${TAG/HEAD/`date +%Y.%m.%d`}
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 () {
91 echo "Usage: $COMMAND [option] make-targets"
92 echo "This is revision $REVISION"
93 echo "Supported options"
100 echo " -s MAKEVAR=value - spaces in value are not supported"
101 echo " -n passed to make"
107 if [ -d /plc/devel/data ] ; then
112 while getopts "vd:r:m:f:b:s:nh" opt ; do
115 d) CVSROOT=$OPTARG ;;
120 s) MAKEVARS=(${MAKEVARS[@]} $OPTARG) ;;
121 n) MAILTO="" ; MAKEOPTS=(${MAKEOPTS[@]} -n) ;;
125 shift $(($OPTIND - 1))
131 # if specified, use it, otherwise create from date
132 if [ -z "$BASE" ] ; then
139 build >> ${BUILD}/log-build.txt 2>&1