--- old/common/bin/hgforest.sh 2014-03-26 14:04:59.444150493 -0700 +++ new/common/bin/hgforest.sh 2014-03-26 14:04:59.360150489 -0700 @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh # # Copyright (c) 2009, 2014, Oracle and/or its affiliates. All rights reserved. @@ -60,10 +60,10 @@ command="$1"; shift -repo_base="$@" +command_args="$@" usage() { - echo "usage: $0 [-q|--quiet] [-v|--verbose] [--] [repo_base_path]" > ${status_output} + echo "usage: $0 [-q|--quiet] [-v|--verbose] [--] [commands...]" > ${status_output} exit 1 } @@ -114,25 +114,29 @@ repos="" repos_extra="" if [ "${command}" = "clone" -o "${command}" = "fclone" ] ; then - if [ -f .hg/hgrc ] ; then - pull_default=`hg paths default` - if [ "${pull_default}" = "" ] ; then - echo "ERROR: Need initial clone with 'hg paths default' defined" > ${status_output} - exit 1 - fi + if [ ! -f .hg/hgrc ] ; then + echo "ERROR: Need initial repository to use this script" > ${status_output} + exit 1 fi + + pull_default=`hg paths default` if [ "${pull_default}" = "" ] ; then - echo "ERROR: Need initial repository to use this script" > ${status_output} + echo "ERROR: Need initial clone with 'hg paths default' defined" > ${status_output} exit 1 fi + pull_default_tail=`echo ${pull_default} | sed -e 's@^.*://[^/]*/\(.*\)@\1@'` + if [ "x${pull_default}" = "x${pull_default_tail}" ] ; then + echo "ERROR: Need initial clone from non-local source" > ${status_output} + exit 1 + fi + for i in ${subrepos} ; do if [ ! -f ${i}/.hg/hgrc ] ; then repos="${repos} ${i}" fi done - if [ "${repo_base}" != "" ] ; then - pull_default_tail=`echo ${pull_default} | sed -e 's@^.*://[^/]*/\(.*\)@\1@'` - pull_extra="${repo_base}/${pull_default_tail}" + if [ "${command_args}" != "" ] ; then + pull_extra="${command_args}/${pull_default_tail}" for i in ${subrepos_extra} ; do if [ ! -f ${i}/.hg/hgrc ] ; then repos_extra="${repos_extra} ${i}" @@ -231,8 +235,8 @@ fi (PYTHONUNBUFFERED=true hg${global_opts} clone ${pull_newrepo} ${i}; echo "$?" > ${tmp}/${repopidfile}.pid.rc ) 2>&1 & else - echo "cd ${i} && hg${global_opts} ${command} ${repo_base}" > ${status_output} - cd ${i} && (PYTHONUNBUFFERED=true hg${global_opts} ${command} ${command_repo}; echo "$?" > ${tmp}/${repopidfile}.pid.rc ) 2>&1 & + echo "cd ${i} && hg${global_opts} ${command} ${command_args}" > ${status_output} + cd ${i} && (PYTHONUNBUFFERED=true hg${global_opts} ${command} ${command_args}; echo "$?" > ${tmp}/${repopidfile}.pid.rc ) 2>&1 & fi echo $! > ${tmp}/${repopidfile}.pid