#!/bin/sh
# Copyright 2019 The Emscripten Authors.  All rights reserved.
# Emscripten is available under two separate licenses, the MIT license and the
# University of Illinois/NCSA Open Source License.  Both these licenses can be
# found in the LICENSE file.

# Wrapper script that runs emsdk.py

# First look for python bundled in Emsdk
if [ -z "$EMSDK_PYTHON" ]; then
  PYTHON3="$(dirname "$0")/python/3.9.2-1_64bit/bin/python3"
  PYTHON3_CERT_FILE="$(dirname "$0")/python/3.9.2-1_64bit/lib/python3.9/site-packages/certifi/cacert.pem"
  if [ ! -f "$PYTHON3" ]; then
    PYTHON3="$(dirname "$0")/python/3.7.4-2_64bit/bin/python3"
    PYTHON3_CERT_FILE="$(dirname "$0")/python/3.7.4-2_64bit/lib/python3.7/site-packages/certifi/cacert.pem"
  fi
  if [ -f "$PYTHON3" ]; then
    EMSDK_PYTHON="$PYTHON3"

    # When using our bundled python we never want the users
    # PYTHONHOME or PYTHONPATH
    # https://github.com/emscripten-core/emsdk/issues/598
    unset PYTHONHOME
    unset PYTHONPATH

    # This is needed for MacOS.  Without this, the urlopen
    # code will try to use /usr/local/etc/openssl/cert.pem
    # which may or may not exist on the system.
    export SSL_CERT_FILE="$PYTHON3_CERT_FILE"
  fi
fi

# If bundled python is not found, look for `python3` in PATH.  This is especially important on macOS (See:
# https://github.com/emscripten-core/emsdk/pull/273)
if [ -z "$EMSDK_PYTHON" ]; then
  if PYTHON3="$(which python3 2>/dev/null)"; then
    EMSDK_PYTHON=$PYTHON3
  fi
fi

# Finally fall back to just looking for `python` in PATH
if [ -z "$EMSDK_PYTHON" ]; then
  EMSDK_PYTHON=python
fi

exec "$EMSDK_PYTHON" "$0.py" "$@"
