| #!/usr/bin/env bash |
| # Copyright 2023 The Go Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style |
| # license that can be found in the LICENSE file. |
| |
| case "$GOWASIRUNTIME" in |
| "wasmedge") |
| exec wasmedge --dir=/ --env PWD="$PWD" --env PATH="$PATH" ${GOWASIRUNTIMEARGS:-} "$1" "${@:2}" |
| ;; |
| "wasmer") |
| exec wasmer run --dir=/ --env PWD="$PWD" --env PATH="$PATH" ${GOWASIRUNTIMEARGS:-} "$1" -- "${@:2}" |
| ;; |
| "wazero") |
| exec wazero run -mount /:/ -env-inherit -cachedir "${TMPDIR:-/tmp}"/wazero ${GOWASIRUNTIMEARGS:-} "$1" "${@:2}" |
| ;; |
| "wasmtime" | "") |
| # Match the major version in "wasmtime-cli 14.0.0". For versions before 14 |
| # we need to use the old CLI. This requires Bash v3.0 and above. |
| # TODO(johanbrandhorst): Remove this condition once 1.22 is released. |
| # From 1.23 onwards we'll only support the new wasmtime CLI. |
| if [[ "$(wasmtime --version)" =~ wasmtime-cli[[:space:]]([0-9]+)\.[0-9]+\.[0-9]+ && "${BASH_REMATCH[1]}" -lt 14 ]]; then |
| exec wasmtime run --dir=/ --env PWD="$PWD" --env PATH="$PATH" --max-wasm-stack 1048576 ${GOWASIRUNTIMEARGS:-} "$1" -- "${@:2}" |
| else |
| exec wasmtime run --dir=/ --env PWD="$PWD" --env PATH="$PATH" -W max-wasm-stack=1048576 ${GOWASIRUNTIMEARGS:-} "$1" "${@:2}" |
| fi |
| ;; |
| *) |
| echo "Unknown Go WASI runtime specified: $GOWASIRUNTIME" |
| exit 1 |
| ;; |
| esac |