Patchwork [1,of,2] contrib: don't hardcode path to bash interpreter

login
register
mail settings
Submitter Olle Lundberg
Date March 25, 2014, 10:11 p.m.
Message ID <5c9e0e96192c55a6cd4e.1395785514@se-c02kq0dadr55.lan>
Download mbox | patch
Permalink /patch/4065/
State Superseded
Commit 864c56cb8945c8ea002c11a115fdf8206dd6c385
Headers show

Comments

Olle Lundberg - March 25, 2014, 10:11 p.m.
# HG changeset patch
# User Olle Lundberg <geek@nerd.sh>
# Date 1395785272 -3600
#      Tue Mar 25 23:07:52 2014 +0100
# Node ID 5c9e0e96192c55a6cd4e468b0f72f8f4d339c82e
# Parent  9a09a625bc93ab69248613abcbea041b785f1a0e
contrib: 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.
David Soria Parra - March 26, 2014, 1:04 a.m.
Olle Lundberg <olle.lundberg@gmail.com> writes:

> # HG changeset patch
> # User Olle Lundberg <geek@nerd.sh>
> # Date 1395785272 -3600
> #      Tue Mar 25 23:07:52 2014 +0100
> # Node ID 5c9e0e96192c55a6cd4e468b0f72f8f4d339c82e
> # Parent  9a09a625bc93ab69248613abcbea041b785f1a0e
> contrib: don't hardcode path to bash interpreter
>

this looks good to me, but if we go the route of using
/usr/bin/env we should do that everywhere in mercurial,
including editmerge and tests/bundles.

Patch

diff --git a/contrib/revsetbenchmarks.sh b/contrib/revsetbenchmarks.sh
--- a/contrib/revsetbenchmarks.sh
+++ b/contrib/revsetbenchmarks.sh
@@ -1,6 +1,6 @@ 
-#!/bin/bash
+#!/usr/bin/env bash
 
 # Measure the performance of a list of revsets against multiple revisions
 # defined by parameter. Checkout one by one and run perfrevset with every
 # revset in the list to benchmark its performance.
 #