fix arg passing to vserver
authorthierry <thierry@41d37cc5-eb28-0410-a9bf-d37491348ade>
Fri, 9 Nov 2007 10:48:25 +0000 (10:48 +0000)
committerthierry <thierry@41d37cc5-eb28-0410-a9bf-d37491348ade>
Fri, 9 Nov 2007 10:48:25 +0000 (10:48 +0000)
scripts/nightly-build-vserver.sh

index d688b7b..056a799 100755 (executable)
@@ -65,12 +65,12 @@ function build () {
     show_env
     
     echo "Running make IN build $(pwd)"
-    make stage1=true ${MAKEOPTS[@]} DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C /build
+    make stage1=true "${MAKEOPTS[@]}" DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} "${MAKEVARS[@]}" -C /build
     # in case we use an older build
     set +e
-    make ${MAKEOPTS[@]} DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C /build versions
+    make "${MAKEOPTS[@]}" DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} "${MAKEVARS[@]}" -C /build versions
     set -e
-    make ${MAKEOPTS[@]} DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} ${MAKEVARS[@]} -C /build $MAKETARGETS
+    make "${MAKEOPTS[@]}" DISTROMAKETAGS=${DISTROMAKETAGS} PLDISTRO=${DISTRO} "${MAKEVARS[@]}" -C /build $MAKETARGETS
 
     # restore silent mode - otherwise cron gets it
     set +x
@@ -136,16 +136,16 @@ function usage () {
     echo "Usage: $COMMAND [option] make-targets"
     echo "This is revision $REVISION"
     echo "Supported options"
-    echo " -f FC_DISTRO - defaults to $DEFAULT_FC_DISTRO"
-    echo " -b BASE - may include @, then replaced with current date"
-    echo " -u : uses directory given as BASE as is, even if already exists"
+    echo " -n dry-run : -n passed to make - no mail sent"
     echo " -d PLDISTRO"
+    echo " -b BASE - may include @, then replaced with current date"
     echo " -t PLDISTROMAKETAGS"
     echo " -r TAGSRELEASE - a release number that refers to PLDISTROMAKETAGS - defaults to HEAD"
-    echo " -s MAKEVAR=value - spaces in value are not supported"
-    echo " -n dry-run : -n passed to make - no mail sent"
+    echo " -s SVNPATH - where to fetch the build module"
+    echo " -f FC_DISTRO - defaults to $DEFAULT_FC_DISTRO"
+    echo " -u : uses directory given as BASE as is, even if already exists"
+    echo " -s MAKEVAR=value"
     echo " -m MAILTO"
-    echo " -s SVNPATH"
     echo " -B : run build only"
     echo " -T : run test only"
     exit 1
@@ -154,6 +154,13 @@ function usage () {
 function main () {
 
     set -x
+
+    # preserve arguments for passing them again later
+    declare -a argv
+    for arg in "$@"; do argv=(${argv[@]} "$arg") ; done
+    # xxx 
+    for x in "${argv[@]}"; do echo 'argv>'$x'<' ; done
+    
     # parse arguments
     MAKEVARS=()
     MAKEOPTS=()
@@ -167,7 +174,7 @@ function main () {
            d) DISTRO=$OPTARG ;;
            t) DISTROMAKETAGS=$OPTARG ;;
            r) TAGSRELEASE=$OPTARG ;;
-           s) MAKEVARS=(${MAKEVARS[@]} $OPTARG) ;;
+           s) MAKEVARS=(${MAKEVARS[@]} "$OPTARG") ;;
            n) MAILTO="" ; MAKEOPTS=(${MAKEOPTS[@]} -n) ;;
            m) MAILTO=$OPTARG ;;
            s) SVNPATH=$OPTARG ;;
@@ -233,10 +240,9 @@ function main () {
        echo "XXXXXXXXXX $COMMAND: preparation of vserver $BASE done" $(date) >> $LOG 2>&1
        cp $COMMANDPATH /vservers/${BASE}/
        # invoke this command in the vserver
-       vserver ${BASE} exec /$COMMAND "$@"  >> $LOG 2>&1
+       vserver ${BASE} exec /$COMMAND "${argv[@]}"  >> $LOG 2>&1
 
     else
-       echo "In vserver : got args" "$@"
        if [ -n "$DO_BUILD" ] ; then 
            build 
            touch /build-ok