# This script is sourced by the user and uses # their shell. # # This script tries to find its location but # this does not work in every shell. # # It is known to work in bash, zsh and ksh # # Do not execute this script without sourcing, # because it won't have any effect then. # That is, always run this script with # # . /path/to/emsdk_env.sh # # or # # source /path/to/emsdk_env.sh # # instead of just plainly running with # # ./emsdk_env.sh # # which won't have any effect. CURRENT_SCRIPT= DIR="." # use shell specific method to get the path # to the current file being source'd. # # To add a shell, add another conditional below, # then add tests to scripts/test_source_env.sh if [ -n "${BASH_SOURCE-}" ]; then CURRENT_SCRIPT="$BASH_SOURCE" elif [ -n "${ZSH_VERSION-}" ]; then CURRENT_SCRIPT="${(%):-%x}" elif [ -n "${KSH_VERSION-}" ]; then CURRENT_SCRIPT=${.sh.file} fi if [ -n "${CURRENT_SCRIPT-}" ]; then DIR=$(dirname "$CURRENT_SCRIPT") if [ -h "$CURRENT_SCRIPT" ]; then # Now work out actual DIR since this is part of a symlink. # Since we can't be sure that readlink or realpath # are available, use tools more likely to be installed. # (This will still fail if sed is not available.) SYMDIR=$(dirname "$(ls -l "$CURRENT_SCRIPT" | sed -n "s/.*-> //p")") if [ -z "$SYMDIR" ]; then SYMDIR="." fi FULLDIR="$DIR/$SYMDIR" DIR=$(cd "$FULLDIR" > /dev/null 2>&1; /bin/pwd) unset SYMDIR unset FULLDIR fi fi unset CURRENT_SCRIPT if [ ! -f "$DIR/emsdk.py" ]; then echo "Error: unable to determine 'emsdk' directory. Perhaps you are using a shell or" 1>&2 echo " environment that this script does not support." 1>&2 echo 1>&2 echo "A possible solution is to source this script while in the 'emsdk' directory." 1>&2 echo 1>&2 unset DIR return fi # Force emsdk to use bash syntax so that this works in windows + bash too eval `EMSDK_BASH=1 "$DIR/emsdk" construct_env` unset DIR