Text file
misc/wasm/go_wasip1_wasm_exec
1 #!/usr/bin/env bash
2 # Copyright 2023 The Go Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style
4 # license that can be found in the LICENSE file.
5
6 case "$GOWASIRUNTIME" in
7 "wasmedge")
8 exec wasmedge --dir=/ --env PWD="$PWD" --env PATH="$PATH" ${GOWASIRUNTIMEARGS:-} "$1" "${@:2}"
9 ;;
10 "wasmer")
11 exec wasmer run --dir=/ --env PWD="$PWD" --env PATH="$PATH" ${GOWASIRUNTIMEARGS:-} "$1" -- "${@:2}"
12 ;;
13 "wazero")
14 exec wazero run -mount /:/ -env-inherit -cachedir "${TMPDIR:-/tmp}"/wazero ${GOWASIRUNTIMEARGS:-} "$1" "${@:2}"
15 ;;
16 "wasmtime" | "")
17 # Match the major version in "wasmtime-cli 14.0.0". For versions before 14
18 # we need to use the old CLI. This requires Bash v3.0 and above.
19 # TODO(johanbrandhorst): Remove this condition once 1.22 is released.
20 # From 1.23 onwards we'll only support the new wasmtime CLI.
21 if [[ "$(wasmtime --version)" =~ wasmtime-cli[[:space:]]([0-9]+)\.[0-9]+\.[0-9]+ && "${BASH_REMATCH[1]}" -lt 14 ]]; then
22 exec wasmtime run --dir=/ --env PWD="$PWD" --env PATH="$PATH" --max-wasm-stack 1048576 ${GOWASIRUNTIMEARGS:-} "$1" -- "${@:2}"
23 else
24 exec wasmtime run --dir=/ --env PWD="$PWD" --env PATH="$PATH" -W max-wasm-stack=1048576 ${GOWASIRUNTIMEARGS:-} "$1" "${@:2}"
25 fi
26 ;;
27 *)
28 echo "Unknown Go WASI runtime specified: $GOWASIRUNTIME"
29 exit 1
30 ;;
31 esac
32
View as plain text