adds support for the -B option
authorthierry <thierry@41d37cc5-eb28-0410-a9bf-d37491348ade>
Tue, 20 Mar 2007 08:41:49 +0000 (08:41 +0000)
committerthierry <thierry@41d37cc5-eb28-0410-a9bf-d37491348ade>
Tue, 20 Mar 2007 08:41:49 +0000 (08:41 +0000)
this allows to specify the tag used to extract the build itself
probably the reason why we could not rebuild planetlab-4_0-rc2

scripts/nightly-build.sh

index ad83146..a53696d 100755 (executable)
@@ -69,7 +69,7 @@ function build () {
   date
 
   cd $ROOT
-  cvs -d $CVSROOT co -d $BASE build
+  cvs -d $CVSROOT co -r $BUILDTAG -d $BASE build
 
   # if TAGSTAG specified : update TAGSFILE with this tag
   if [ -n "$TAGSTAG" ] ; then
@@ -92,31 +92,34 @@ function build () {
 
 function show_env () {
   echo ROOT=$ROOT
-  echo BASE=$BASE
   echo DISTRO=$DISTRO
+  echo BASE=$BASE
   echo MAKEVARS="${MAKEVARS[@]}"
   echo MAKEOPTS="${MAKEOPTS[@]}"
-  echo TAGSFILE=$TAGSFILE
-  echo "XXXXXXXXXXXXXXXXXXXX Contents of $TAGSFILE"
+  echo BUILDTAG="$BUILDTAG"
+  echo TAGSFILE="$TAGSFILE"
+  echo TAGSTAG="$TAGSTAG"
+  echo "XXXXXXXXXXXXXXXXXXXX Contents of tags definition file $TAGSFILE"
   cat $BASE/$TAGSFILE
-  echo "XXXXXXXXXXXXXXXXXXXX end contents"
+  echo "XXXXXXXXXXXXXXXXXXXX end tags definition"
 }
 
 function usage () {
   echo "Usage: $COMMAND [option] make-targets"
   echo "This is revision $REVISION"
   echo "Supported options"
-  echo " -v verbose"
-  echo " -b BASE - may include %d then is replaced with current date"
+  echo " -b BASE - may include %d, then replaced with current date"
   echo " -u : uses directory given as BASE as is, even if already exists"
   echo " -e : exits (does nothing) if BASE already exists"
-  echo " -c CVSROOT"
   echo " -d DISTRO"
   echo " -t TAGSFILE"
   echo " -r TAGSTAG - a tag that refers to TAGSFILE - defaults to HEAD"
-  echo " -m MAILTO"
+  echo " -B BUILDTAG - the tag used to extract build/"
   echo " -s MAKEVAR=value - spaces in value are not supported"
   echo " -n passed to make"
+  echo " -v verbose"
+  echo " -m MAILTO"
+  echo " -c CVSROOT"
   exit 1
 }
 
@@ -127,33 +130,36 @@ function main () {
   else
     MAKEVARS=()
     MAKEOPTS=()
-    while getopts "vc:t:r:m:d:b:s:uenh" opt ; do
+    while getopts "b:ued:t:r:B:s:nvm:c:h" opt ; do
       case $opt in
-       v) set -x ;;
-       c) CVSROOT=$OPTARG ;;
-        t) TAGSFILE=$OPTARG ;;
-       r) TAGSTAG=$OPTARG ;;
-        m) MAILTO=$OPTARG ;;
-        d) DISTRO=$OPTARG ;;
         b) BASE=$OPTARG ;;
         u) USEOLD=true ;;
        e) EXITIFOLD=true ;;
+        d) DISTRO=$OPTARG ;;
+        t) TAGSFILE=$OPTARG ;;
+       r) TAGSTAG=$OPTARG ;;
+        B) BUILDTAG=$OPTARG ;;
         s) MAKEVARS=(${MAKEVARS[@]} $OPTARG) ;;
        n) MAILTO="" ; MAKEOPTS=(${MAKEOPTS[@]} -n) ;;
+       v) set -x ;;
+        m) MAILTO=$OPTARG ;;
+       c) CVSROOT=$OPTARG ;;
         h|*) usage ;;
       esac
     done
 
-    ROOT=$ROOT/$DISTRO
-
     shift $(($OPTIND - 1))
     
+    ROOT=$ROOT/$DISTRO
+    cd $ROOT
+
     MAKETARGETS="$@"
 
-    cd $ROOT
+    ### set BUILDTAG
+    [ -z "$BUILDTAG" ] && BUILDTAG=HEAD
+
     ### set BASE from DISTRO, if unspecified
     [ -z "$BASE" ] && BASE=${DISTRO}
-
     BASE=$(echo ${BASE} | sed -e "s,%d,${DATE},g")
 
     if [ -n "$EXITIFOLD" -a -d "$BASE" ] ; then