Re: [PATCH] Use SHELL_PATH
Show 34 quoted lines
> "Sverre Rabbelier" <alturin@gmail.com> writes:
>
>> On Wed, Jul 16, 2008 at 3:31 AM, SungHyun Nam <goweol@gmail.com> wrote:
>>> Signed-off-by: SungHyun Nam <goweol@gmail.com>
>>> ---
>>> 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
}