From cac863e958a0c8fe0f8a84dc194273c699f0c40f Mon Sep 17 00:00:00 2001 From: Gary Thomas Date: Mon, 24 Feb 2014 17:11:47 +0000 Subject: oe-init-build-env: Improve script sourcing detection. This script is only useful when sourced into a shell. These changes improve the detection of this operation, no matter how the script is referenced. Signed-off-by: Gary Thomas Signed-off-by: Saul Wold Signed-off-by: Richard Purdie --- oe-init-build-env | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) (limited to 'oe-init-build-env') diff --git a/oe-init-build-env b/oe-init-build-env index 8ef32f3d55..52495133fd 100755 --- a/oe-init-build-env +++ b/oe-init-build-env @@ -25,27 +25,31 @@ # being sourced. To workaround the shell limitation use "set arg1" prior # to sourcing this script. # -if [ -z "$ZSH_NAME" ] && [ "x$0" = "x./oe-init-build-env" ]; then - echo "Error: This script needs to be sourced. Please run as '. ./oe-init-build-env'" +if [ -n "$BASH_SOURCE" ]; then + OEROOT="`dirname $BASH_SOURCE`" +elif [ -n "$ZSH_NAME" ]; then + OEROOT="`dirname $0`" else - if [ -n "$BASH_SOURCE" ]; then - OEROOT="`dirname $BASH_SOURCE`" - elif [ -n "$ZSH_NAME" ]; then - OEROOT="`dirname $0`" - else - OEROOT="`pwd`" - fi - if [ -n "$BBSERVER" ]; then - unset BBSERVER - fi - OEROOT=`readlink -f "$OEROOT"` - export OEROOT - . $OEROOT/scripts/oe-buildenv-internal && \ - $OEROOT/scripts/oe-setup-builddir && \ - [ -n "$BUILDDIR" ] && cd $BUILDDIR - unset OEROOT - unset BBPATH + OEROOT="`pwd`" fi +if [ -n "$BBSERVER" ]; then + unset BBSERVER +fi +THIS_SCRIPT=$OEROOT/oe-init-build-env + +if [ -z "$ZSH_NAME" ] && [ "$0" = "$THIS_SCRIPT" ]; then + echo "Error: This script needs to be sourced. Please run as '. $THIS_SCRIPT'" + exit 1 +fi + +OEROOT=`readlink -f "$OEROOT"` +export OEROOT +. $OEROOT/scripts/oe-buildenv-internal && \ + $OEROOT/scripts/oe-setup-builddir && \ + [ -n "$BUILDDIR" ] && cd $BUILDDIR +unset OEROOT +unset BBPATH +unset THIS_SCRIPT # Shutdown any bitbake server if the BBSERVER variable is not set if [ -z "$BBSERVER" ] && [ -f bitbake.lock ] ; then -- cgit 1.2.3-korg