Looks good to me and useful.  (Other than that I had hoped to claim "-s" for a 
future change I planned ;-) (no worries, I will use "-r" for that))

Mike

On Apr 10 2014, at 08:54 , Chris Hegarty <chris.hega...@oracle.com> wrote:

> 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.
> 

Reply via email to