[PATCH 2 of 2 V2] tests: don't hardcode path to bash interpreter

Olle olle.lundberg at gmail.com
Wed Mar 26 06:37:34 CDT 2014


On Wed, Mar 26, 2014 at 12:19 PM, Martin Geisler <martin at geisler.net> wrote:

> Olle Lundberg <olle.lundberg at gmail.com> writes:
>
> > # HG changeset patch
> > # User Olle Lundberg <geek at nerd.sh>
> > # Date 1395785272 -3600
> > #      Tue Mar 25 23:07:52 2014 +0100
> > # Node ID c0c158e277f7b7a33c51d0ee163c42345c70d84d
> > # Parent  6e8b538637302e06a3510d15e36c30757f8501a2
> > tests: don't hardcode path to bash interpreter
> >
> > Use the env binary to figure out the correct bash to use.
> > Certain systems ships with an ancient version of bash, but the
> > user might have installed a newer one that is earlier in $PATH.
> >
> > For example the current version of Mac OS X ships version 3.2.51
> > of bash, which does not understand new fancy builtins such as
> > readarray. A user might install a newer version of bash, use that
> > as their shell and add that path before bin.
>
> Okay, but couldn't one object that the scripts we distribute shouldn't
> use new fancy features?
>
> Yes and no. The most important part is actually about being a good unix
citizen and honour the environment a sysadmin have setup.
We should really invoke {ba,}sh through /usr/bin/env {ba,}sh and not
hardcode an interpreter.


> Infact, it seems like it would be better if we used #!/bin/sh instead
> and wrote the scripts so they work on a wide vararity of machines.
>
Sure, when will you patch that?


>
> I haven't really looked at the shell scripts, so I don't know if we
> already use non-standard features or if it would be difficult to rewrite
> them to a simpler form of shell script.
>
> --
> Martin Geisler
>



-- 
Olle
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20140326/101c53f2/attachment.html>


More information about the Mercurial-devel mailing list