Subject: Re: [PATCH] Use SHELL_PATH

From: SungHyun Nam <[email-masked]>
Date: Thu, 17 Jul 2008 09:32:42 +0900

Junio C Hamano wrote:
> "Sverre Rabbelier" <[email-masked]> writes:
> 
>> On Wed, Jul 16, 2008 at 3:31 AM, SungHyun Nam <[email-masked]> wrote:
>>> Signed-off-by: SungHyun Nam <[email-masked]>
>>> ---
>>>  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
}