From 074ca832c0274e0e92698b4d006ef2708be105b8 Mon Sep 17 00:00:00 2001 From: Dexuan Cui Date: Thu, 4 Aug 2011 14:53:20 +0800 Subject: scripts/oe-buildenv-internal: improve the error detecting for $BDIR The previous fix for a bug in Ubuntu 10.04 readlink, be2a2764d8ceb398d81714661e6f199c8b11946c, notified the user when a trailing slash was used. As there is no semantic difference, simply remove any trailing slashes and proceed without nagging the user. See [YOCTO #671] for more details. Signed-off-by: Dexuan Cui Acked-by: Darren Hart Cc: Paul Eggleton --- scripts/oe-buildenv-internal | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/scripts/oe-buildenv-internal b/scripts/oe-buildenv-internal index 117b0c593..61ac18c14 100755 --- a/scripts/oe-buildenv-internal +++ b/scripts/oe-buildenv-internal @@ -28,14 +28,21 @@ if [ "x$BDIR" = "x" ]; then if [ "x$1" = "x" ]; then BDIR="build" else - BDIR=`readlink -f "$1"` - if [ -z "$BDIR" ]; then - if expr "$1" : '.*/$' >/dev/null; then - echo >&2 "Error: please remove any trailing / in the argument." - else - PARENTDIR=`dirname "$1"` - echo >&2 "Error: the directory $PARENTDIR doesn't exist?" - fi + BDIR="$1" + if [ "$BDIR" = "/" ]; then + echo >&2 "Error: / is not supported as a build directory." + return 1 + fi + + # Remove any possible trailing slashes. This is used to work around + # buggy readlink in Ubuntu 10.04 that doesn't ignore trailing slashes + # and hence "readlink -f new_dir_to_be_created/" returns empty. + BDIR=`echo $BDIR | sed -re 's|/+$||'` + + BDIR=`readlink -f "$BDIR"` + if [ -z "$BDIR" ]; then + PARENTDIR=`dirname "$1"` + echo >&2 "Error: the directory $PARENTDIR does not exist?" return 1 fi fi -- cgit v1.2.3