From: SungHyun Nam Date: Thu, 17 Jul 2008 00:32:42 GMT Subject: Re: [PATCH] Use SHELL_PATH Message-ID: <487E932A.5080502@gmail.com> In-Reply-To: <7vr69tu91e.fsf@gitster.siamese.dyndns.org> Junio C Hamano wrote: > "Sverre Rabbelier" writes: > >> On Wed, Jul 16, 2008 at 3:31 AM, SungHyun Nam wrote: >>> Signed-off-by: SungHyun Nam >>> --- >>> t/Makefile | 2 +- >>> 1 files changed, 1 insertions(+), 1 deletions(-) >>> >>> diff --git a/t/Makefile b/t/Makefile >>> index a778865..0d65ced 100644 >>> --- a/t/Makefile >>> +++ b/t/Makefile >>> @@ -26,7 +26,7 @@ clean: >>> $(RM) -r 'trash directory' test-results >>> >>> aggregate-results: >>> - ./aggregate-results.sh test-results/t*-* >>> + '$(SHELL_PATH_SQ)' ./aggregate-results.sh test-results/t*-* >>> >>> # we can test NO_OPTIMIZE_COMMITS independently of LC_ALL >>> full-svn-test: >>> -- >>> 1.5.6.3.350.g6c11a >> It is not clear to me what this patch does, there is no justification >> in the commit msg either. Instead you say what is being done, which we >> can see from the commit diff. Please clarify? > > It wants to make sure that the shell specified from the toplevel Makefile > (or from make command line) is used to run the aggregation script. It is > often necessary when platform /bin/sh is not quite POSIX (e.g. the script > in question uses arithmetic expansion "$(( $var1 + $var2 ))"). > > Just saying "Use specified shell to run shell scripts" on the title line > would be sufficient, but I wonder if this is the only remaining place... For the 'make test', yes, it's the only remaining place to me. Well, I skip the cvs/svn/.. tests which I never use. And I need this patch for the Solaris. And I also need to run a script function below between 'make all' and 'make test/install'. I hope GIT does this. Of course, GIT's Makefile would use SHELL_PATH and PERL_PATH. git_fix_interpreter() { p="/usr/local/bin/perl" if test -x "$p" then for f in $(find . -name '*.perl') do e=$(dirname $f)/$(basename $f .perl) [ -f "$e" -a -x "$e" ] \ && "$p" -pi -e 's@^#!/usr/(bin/perl.*)$@#!/usr/local/\1@g' "$e" done fi if test -x /bin/bash then for f in $(find . -name '*.sh') do e=$(dirname $f)/$(basename $f .sh) [ -f "$e" -a -x "$e" ] \ && "$p" -pi -e 's@^#!/bin/sh(.*)$@#!/bin/bash\1@g' "$e" done fi }