From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: Received: from smtprelay05.ispgateway.de ([80.67.31.97]) by metis.ext.pengutronix.de with esmtp (Exim 4.72) (envelope-from ) id 1S7BMJ-0004j0-7H for ptxdist@pengutronix.de; Mon, 12 Mar 2012 20:56:46 +0100 Received: from [88.217.118.228] (helo=localhost) by smtprelay05.ispgateway.de with esmtpsa (TLSv1:AES128-SHA:128) (Exim 4.68) (envelope-from ) id 1S7BMI-0007tf-OI for ptxdist@pengutronix.de; Mon, 12 Mar 2012 20:56:42 +0100 From: Bernhard Walle Date: Mon, 12 Mar 2012 20:56:33 +0100 Message-Id: <1331582193-35368-2-git-send-email-bernhard@bwalle.de> In-Reply-To: <1331582193-35368-1-git-send-email-bernhard@bwalle.de> References: <1331582193-35368-1-git-send-email-bernhard@bwalle.de> Subject: [ptxdist] [PATCH 2/2] ptxdist: Check for GNU readlink Reply-To: ptxdist@pengutronix.de List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: ptxdist-bounces@pengutronix.de Errors-To: ptxdist-bounces@pengutronix.de To: ptxdist@pengutronix.de ptxdist heavily uses "readlink -f" which only works with GNU readlink. So add the usual check here. However, because "readlink -f" is also used before the symlinks in the ptxdist directory is added to the PATH, that "readlink -f" call is replaced by a bash-only implementation. This one is inspired from http://mailman.archlinux.org/pipermail/pacman-dev/2009-February/008130.html. Tested on Mac OS 10.7. Signed-off-by: Bernhard Walle --- Makefile.in | 1 + bin/ptxdist | 22 +++++++++++++++++++++- configure.ac | 1 + 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/Makefile.in b/Makefile.in index e62a2d9..17a6ce6 100644 --- a/Makefile.in +++ b/Makefile.in @@ -54,6 +54,7 @@ environment: @ln -sf @GNU_stat@ "$(abs_srcdir)/bin/stat" @ln -sf @GNU_mknod@ "$(abs_srcdir)/bin/mknod" @ln -sf @GNU_tar@ "$(abs_srcdir)/bin/tar" + @ln -sf @GNU_readlink@ "$(abs_srcdir)/bin/readlink" @ln -sf @PYTHON@ "$(abs_srcdir)/bin/python" @ln -sf @SED@ "$(abs_srcdir)/bin/sed" @ln -sf @XARGS@ "$(abs_srcdir)/bin/xargs" diff --git a/bin/ptxdist b/bin/ptxdist index eb3366a..7636187 100755 --- a/bin/ptxdist +++ b/bin/ptxdist @@ -1843,6 +1843,26 @@ EOF ################ setup stuff only ################################ ################################################################## +# +# bash implementation of realpath / readlink -f +# arg1 - filename +realpath() +{ + local fname oldfname + + fname=${1%/} # strips trailing '/' + while [ -L "${fname}" ]; do + oldfname="${fname}" + fname="$(readlink ${fname})" + if [ "$fname" = . ] ; then + fname="$(dirname $oldfname)" + elif [ "${fname}" = "${fname#/}" ]; then + fname="$(dirname "${oldfname}")/${fname}" + fi + done + + (cd $(dirname ${fname}); echo $(pwd -P)/$(basename ${fname})) +} # # figure out PTXDIST_TOPDIR @@ -1859,7 +1879,7 @@ EOF setup_topdir() { local ptxdist topdir - ptxdist="$(readlink -f "${0}")" && + ptxdist="$(realpath "${0}")" && topdir="$(cd "$(dirname "${ptxdist}")"/.. && pwd)" || return # diff --git a/configure.ac b/configure.ac index 37a01ae..780bf28 100644 --- a/configure.ac +++ b/configure.ac @@ -155,6 +155,7 @@ GNU_TOOL(mkdir, coreutils) GNU_TOOL(install, coreutils) GNU_TOOL(stat, coreutils) GNU_TOOL(mknod, coreutils) +GNU_TOOL(readlink, coreutils) GNU_TOOL(tar, tar) dnl Check for egrep -- 1.7.9.2 -- ptxdist mailing list ptxdist@pengutronix.de