scripts/oe-buildenv-internal: improve the error detecting for $BDIR
authorDexuan Cui <dexuan.cui@intel.com>
Thu, 4 Aug 2011 06:53:20 +0000 (14:53 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Wed, 10 Aug 2011 12:33:06 +0000 (13:33 +0100)
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.

(From OE-Core rev: 074ca832c0274e0e92698b4d006ef2708be105b8)

Signed-off-by: Dexuan Cui <dexuan.cui@intel.com>
Acked-by: Darren Hart <dvhart@linux.intel.com>
Cc: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
scripts/oe-buildenv-internal

index 117b0c5..61ac18c 100755 (executable)
@@ -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