From 2a708dec24c1db63635f3aa35d6a19424130e7b9 Mon Sep 17 00:00:00 2001 From: Robert Yang Date: Mon, 11 Mar 2019 18:16:55 +0800 Subject: oe-init-build-env: Error out when failed to locate cwd Ubuntu's /bin/sh symlinks to /bin/dash by default, so subprocess.check_call(oe-init-build-env, cwd=builddir) would be failed since pwd is builddir, and there is no $builddir/oe-init-build-env, this would lead to other confusing errors, check and error it out earlier to make it easier to locate the problem. We don't meet the problem when manually run ". oe-init-build-env" is because Ubuntu's default login shell is bash, but subprocess.check_call() doesn't respect to login shell, so the error only happens in situations like subprocess.check_call(). And also print errors to stderr as oe-buildenv-internal does. (From OE-Core rev: aa4d86ff55b01d150f49b5b4517b0c661a10c36b) Signed-off-by: Robert Yang Signed-off-by: Richard Purdie Signed-off-by: Armin Kuster Signed-off-by: Richard Purdie --- oe-init-build-env | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'oe-init-build-env') diff --git a/oe-init-build-env b/oe-init-build-env index e813230a98..861c3e000e 100755 --- a/oe-init-build-env +++ b/oe-init-build-env @@ -31,13 +31,18 @@ elif [ -n "$ZSH_NAME" ]; then THIS_SCRIPT=$0 else THIS_SCRIPT="$(pwd)/oe-init-build-env" + if [ ! -e "$THIS_SCRIPT" ]; then + echo "Error: $THIS_SCRIPT doesn't exist!" >&2 + echo "Please run this script in oe-init-build-env's directory." >&2 + exit 1 + fi fi if [ -n "$BBSERVER" ]; then unset BBSERVER fi if [ -z "$ZSH_NAME" ] && [ "$0" = "$THIS_SCRIPT" ]; then - echo "Error: This script needs to be sourced. Please run as '. $THIS_SCRIPT'" + echo "Error: This script needs to be sourced. Please run as '. $THIS_SCRIPT'" >&2 exit 1 fi -- cgit v1.2.3-54-g00ecf