From 1fd6a4bfc26bf71ae28bfd77b0d0182198370838 Mon Sep 17 00:00:00 2001 From: Jim Patterson Date: Fri, 19 May 2017 08:51:56 -0400 Subject: [PATCH] Replace `which` with `command` for portability (#542) The `which` command is not part of the posix standard and not available in some environments. The `command` command is part of the posix standard and well supported. See https://unix.stackexchange.com/q/85249 for a discussion about the use of `command` instead of `which`. If a system had `libtool` but not `which`, the build process would issue an erroneous error stating: libtool is required, but wasn't found on this system Switching to `command` corrects this problem. --- autogen.sh | 17 +++++++++++------ test/default/nacl-test-wrapper.sh | 5 ++++- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/autogen.sh b/autogen.sh index 5c105ccd..394e6f7a 100755 --- a/autogen.sh +++ b/autogen.sh @@ -6,20 +6,25 @@ else LIBTOOLIZE='libtoolize' fi -if [ ! -x "`which $LIBTOOLIZE 2>/dev/null`" ] ; then +command -v command >/dev/null 2>&1 || { + echo "command is required, but wasn't found on this system" + exit 1 +} + +command -v $LIBTOOLIZE >/dev/null 2>&1 || { echo "libtool is required, but wasn't found on this system" exit 1 -fi +} -if [ ! -x "`which autoconf 2>/dev/null`" ] ; then +command -v autoconf >/dev/null 2>&1 || { echo "autoconf is required, but wasn't found on this system" exit 1 -fi +} -if [ ! -x "`which automake 2>/dev/null`" ] ; then +command -v automake >/dev/null 2>&1 || { echo "automake is required, but wasn't found on this system" exit 1 -fi +} if autoreconf --version > /dev/null 2>&1 ; then exec autoreconf -ivf diff --git a/test/default/nacl-test-wrapper.sh b/test/default/nacl-test-wrapper.sh index fc4af65f..8e313706 100755 --- a/test/default/nacl-test-wrapper.sh +++ b/test/default/nacl-test-wrapper.sh @@ -16,7 +16,10 @@ else fi fi -which python >/dev/null 2>&1 || \ +command -v command >/dev/null 2>&1 || \ + { echo "command is required, but wasn't found on this system"; exit 1; } + +command -v python >/dev/null 2>&1 || \ { echo >&2 "Python not found. Aborting."; exit 1; } SEL_LDR=$(find "$NACL_SDK_ROOT" -name sel_ldr.py | head -n 1)