From 60388478657b77d8c1822085f4fa8bd30174e806 Mon Sep 17 00:00:00 2001
From: thierry <thierry@41d37cc5-eb28-0410-a9bf-d37491348ade>
Date: Fri, 9 Nov 2007 10:48:25 +0000
Subject: [PATCH] fix arg passing to vserver

---
 scripts/nightly-build-vserver.sh | 30 ++++++++++++++++++------------
 1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/scripts/nightly-build-vserver.sh b/scripts/nightly-build-vserver.sh
index d688b7b..056a799 100755
--- a/scripts/nightly-build-vserver.sh
+++ b/scripts/nightly-build-vserver.sh
@@ -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
-- 
2.47.0