unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* [PATCH] configure: test shell parameter substring processing and possibly exec one
@ 2012-04-16 15:13 Tomi Ollila
  2012-04-17  6:14 ` Tomi Ollila
  2012-05-03 18:59 ` [PATCH] configure: check whether shell is capable of parameter substring processing Tomi Ollila
  0 siblings, 2 replies; 5+ messages in thread
From: Tomi Ollila @ 2012-04-16 15:13 UTC (permalink / raw)
  To: notmuch; +Cc: Tomi Ollila

configure script uses parameter substring extensively. It is Posix shell
feature. Original Bourne shell does not have such features. Some systems
still ships such shells as /bin/sh (for compatibility reasons -- shell
scripts written on those platforms are expected to work in 1990's systems...)

To tackle this situation the beginning of configure attemts to do a silent
parameter substitution in a subshell; in case this fails the subshell exits
with nonzero value which is easy to detect.

The || constructs are used twice. The first one is used as Bourne shell
chokes on 'if ! ... ' construct (and if ...; then :; else do_things; fi
looks stupid). The second one(liner) takes care of the possible future
'set -eu' in the beginning of this script.
---

This patch obsoletes id:"1333966665-10469-2-git-send-email-Vladimir.Marek@oracle.com"

 configure |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/configure b/configure
index 71981b7..06fbeff 100755
--- a/configure
+++ b/configure
@@ -1,5 +1,19 @@
 #! /bin/sh
 
+# Test whether this sh is capable of parameter substring processing.
+# If not, attempt to locate and launch one which probably can.
+( option=option=value; : ${option#*=} ) 2>/dev/null || {
+    if test x"${_NOTMUCH_CONFIGURE-}" = x ; then
+	NOTMUCH_CONFIGURE=1; export _NOTMUCH_CONFIGURE
+	for x in /bin/ksh /bin/bash /usr/bin/bash
+	do test ! -x "$x" || exec "$x" "$0" "$@"
+	done
+    fi
+    echo "Cannot find compatible shell to execute '$0'" >&2
+    exit 1
+}
+unset _NOTMUCH_CONFIGURE
+
 # Store original IFS value so it can be changed (and restored) in many places.
 readonly DEFAULT_IFS=$IFS
 
-- 
1.7.8.2

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-07-25 11:21 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-16 15:13 [PATCH] configure: test shell parameter substring processing and possibly exec one Tomi Ollila
2012-04-17  6:14 ` Tomi Ollila
2012-05-02 22:25   ` David Bremner
2012-05-03 18:59 ` [PATCH] configure: check whether shell is capable of parameter substring processing Tomi Ollila
2012-07-25 11:21   ` David Bremner

Code repositories for project(s) associated with this public inbox

	https://yhetil.org/notmuch.git/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).