cleaning up the root creation functions and build.common - untested
[build.git] / vbuild-nightly.sh
index 88b77e2..3ebcab0 100755 (executable)
@@ -5,15 +5,15 @@ COMMANDPATH=$0
 COMMAND=$(basename $0)
 
 # default values, tunable with command-line options
-DEFAULT_FCDISTRO=fc6
+DEFAULT_FCDISTRO=f7
 DEFAULT_PLDISTRO=planetlab
-DEFAULT_BASE="@DATE@--@PLDISTRO@-@FCDISTRO@"
+DEFAULT_PERSONALITY=linux32
+DEFAULT_BASE="@DATE@--@PLDISTRO@-@FCDISTRO@-@PERSONALITY@"
 DEFAULT_SVNPATH="http://svn.planet-lab.org/svn/build/trunk"
 
-DEFAULT_MAILTO_onelab="onelab-build@one-lab.org"
-# tmp - send all mails to onelab
-#DEFAULT_MAILTO_planetlab="devel@planet-lab.org"
-DEFAULT_MAILTO_planetlab=$DEFAULT_MAILTO_onelab
+# NOTE: do not think we want to put email addresses into scripts
+# that can be harvested by spambots. --mef
+DEFAULT_MAILTO="onelab-build@one-lab.org"
 
 # web publishing results
 DEFAULT_WEBPATH="/build/@PLDISTRO@/"
@@ -59,7 +59,7 @@ function success () {
     summary $LOG >> ${WEBLOG}
     touch ${WEBLOG}.ok
     if [ -n "$MAILTO" ] ; then
-       (echo "http://build.one-lab.org/$PLDISTRO/$BASE" ; echo "Completed on $(date)" ) | mail -s "Successfull build for ${BASE}" $MAILTO
+       (echo "$PLDISTRO ($BASE) build for $FCDISTRO completed on $(date)" ) | mail -s "Successfull build for ${BASE}" $MAILTO
     fi
     exit 0
 }
@@ -171,17 +171,18 @@ function usage () {
     echo "This is $REVISION"
     echo "Supported options"
     echo " -n dry-run : -n passed to make - vserver gets created though - no mail sent"
-    echo " -f FCDISTRO - defaults to $DEFAULT_FCDISTRO"
-    echo " -d PLDISTRO - defaults to $DEFAULT_PLDISTRO"
-    echo " -b BASE - defaults to $DEFAULT_BASE"
+    echo " -f fcdistro - defaults to $DEFAULT_FCDISTRO"
+    echo " -d pldistro - defaults to $DEFAULT_PLDISTRO"
+    echo " -p personality - defaults to $DEFAULT_PERSONALITY"
+    echo " -b base - defaults to $DEFAULT_BASE"
     echo "    @NAME@ replaced as appropriate"
-    echo " -t PLDISTROTAGS - defaults to \${PLDISTRO}-tags.mk"
-    echo " -r TAGSRELEASE - a release number that refers to PLDISTROTAGS - defaults to HEAD"
-    echo " -s SVNPATH - where to fetch the build module"
+    echo " -t pldistrotags - defaults to \${PLDISTRO}-tags.mk"
+    echo " -r tagsrelease - a release number that refers to PLDISTROTAGS - defaults to HEAD"
+    echo " -s svnpath - where to fetch the build module"
     echo " -o : overwrite - re-run in base directory, do not create vserver"
-    echo " -m MAILTO"
-    echo " -a MAKEVAR=value - space in values are not supported"
-    echo " -w WEBPATH - defaults to $DEFAULT_WEBPATH"
+    echo " -m mailto"
+    echo " -a makevar=value - space in values are not supported"
+    echo " -w webpath - defaults to $DEFAULT_WEBPATH"
     echo " -B : run build only"
     echo " -T : run test only"
     echo " -v : be verbose"
@@ -201,11 +202,12 @@ function main () {
     MAKEOPTS=()
     DO_BUILD=true
     DO_TEST=true
-    while getopts "nf:d:b:t:r:s:om:a:w:BTvh" opt ; do
+    while getopts "nf:d:b:p:t:r:s:om:a:w:BTvh" opt ; do
        case $opt in
            n) DRY_RUN="true" ; MAKEOPTS=(${MAKEOPTS[@]} -n) ;;
            f) FCDISTRO=$OPTARG ;;
            d) PLDISTRO=$OPTARG ;;
+           p) PERSONALITY=$OPTARG ;;
            b) BASE=$OPTARG ;;
            t) PLDISTROTAGS=$OPTARG ;;
            r) TAGSRELEASE=$OPTARG ;;
@@ -227,20 +229,22 @@ function main () {
     # set defaults
     [ -z "$FCDISTRO" ] && FCDISTRO=$DEFAULT_FCDISTRO
     [ -z "$PLDISTRO" ] && PLDISTRO=$DEFAULT_PLDISTRO
+    [ -z "$PERSONALITY" ] && PERSONALITY=$DEFAULT_PERSONALITY
     [ -z "$PLDISTROTAGS" ] && PLDISTROTAGS="${PLDISTRO}-tags.mk"
     [ -z "$BASE" ] && BASE="$DEFAULT_BASE"
     [ -z "$WEBPATH" ] && WEBPATH="$DEFAULT_WEBPATH"
     [ -z "$SVNPATH" ] && SVNPATH="$DEFAULT_SVNPATH"
-    # 
+
+    # NOTE: suggest that by default no email is sent and that the user
+    # should explicitly invoke this script with the -m arg to pass in
+    # the appropriate email address. --mef
     if [ "$PLDISTRO" = "onelab" ] ; then
-       [ -z "$MAILTO" ] && MAILTO="$DEFAULT_MAILTO_onelab"
-    else
-       [ -z "$MAILTO" ] && MAILTO="$DEFAULT_MAILTO_planetlab"
+       [ -z "$MAILTO" ] && MAILTO="$DEFAULT_MAILTO"
     fi
     [ -n "$DRY_RUN" ] && MAILTO=""
        
     ### set BASE from DISTRO, if unspecified
-    sedargs="-e s,@DATE@,${DATE},g -e s,@FCDISTRO@,${FCDISTRO},g -e s,@PLDISTRO@,${PLDISTRO},g"
+    sedargs="-e s,@DATE@,${DATE},g -e s,@FCDISTRO@,${FCDISTRO},g -e s,@PLDISTRO@,${PLDISTRO},g -e s,@PERSONALITY@,${PERSONALITY},g"
     BASE=$(echo ${BASE} | sed $sedargs)
     WEBPATH=$(echo ${WEBPATH} | sed $sedargs)
 
@@ -299,7 +303,7 @@ function main () {
            svn export $SVNPATH $tmpdir
             # Create vserver
            cd $tmpdir
-           ./vbuild-init-vserver.sh ${BASE} ${FCDISTRO} ${PLDISTRO}
+           ./vbuild-init-vserver.sh -f ${FCDISTRO} -d ${PLDISTRO} -p ${PERSONALITY} ${BASE}
            # cleanup
            cd -
            rm -rf $tmpdir