RFR [9] sequential operation option for hgforest

Chris Hegarty chris.hegarty at oracle.com
Thu Apr 10 15:54:27 UTC 2014


Sometimes I get a little confused/nervous when trying to push/status/in using the hgforest.sh script. The output can be a little confusing as it runs several jobs in parallel.

I would like to add an option to support sequential operation of commands. It is off by default. The more nervous of us that push using this script can opt in, if you like!

diff --git a/common/bin/hgforest.sh b/common/bin/hgforest.sh
--- a/common/bin/hgforest.sh
+++ b/common/bin/hgforest.sh
@@ -29,6 +29,7 @@
 status_output="/dev/stdout"
 qflag="false"
 vflag="false"
+sflag="false"
 while [ $# -gt 0 ]
 do
   case $1 in
@@ -43,6 +44,10 @@
       global_opts="${global_opts} -v"
       ;;
 
+    -s | --sequential )
+      sflag="true"
+      ;;
+
     '--' ) # no more options
       shift; break
       ;;
@@ -63,7 +68,7 @@
 command_args="$@"
 
 usage() {
-      echo "usage: $0 [-q|--quiet] [-v|--verbose] [--] <command> [commands...]" > ${status_output}
+      echo "usage: $0 [-q|--quiet] [-v|--verbose] [-s|--sequential] [--] <command> [commands...]" > ${status_output}
       exit 1
 }
 
@@ -243,11 +248,15 @@
       ) 2>&1 | sed -e "s@^@${reponame}:   @" > ${status_output}
     ) &
 
-    if [ `expr ${n} '%' ${at_a_time}` -eq 0 ] ; then
+    if [ `expr ${n} '%' ${at_a_time}` -eq 0 -a "${sflag}" = "false" ] ; then
       sleep 2
       echo "Waiting 5 secs before spawning next background command." > ${status_output}
       sleep 3
     fi
+
+    if [ "${sflag}" = "true" ] ; then
+        wait
+    fi
   done
 fi
 
-Chris.




More information about the build-dev mailing list