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.