9
9
"io/fs"
10
10
"os"
11
11
"path/filepath"
12
+ "strings"
12
13
14
+ "github.com/tetratelabs/wazero/sys"
13
15
"go.bytecodealliance.org/internal/wasmtools"
14
16
)
15
17
@@ -58,6 +60,7 @@ func loadWIT(path string, reader io.Reader) (*Resolve, error) {
58
60
var stdin io.Reader
59
61
60
62
if path != "" {
63
+ path = strings .TrimPrefix (path , "./" )
61
64
args = append (args , path )
62
65
dir := filepath .Dir (path )
63
66
fsMap [dir ] = os .DirFS (dir )
@@ -69,9 +72,13 @@ func loadWIT(path string, reader io.Reader) (*Resolve, error) {
69
72
return nil , err
70
73
}
71
74
stdout := & bytes.Buffer {}
72
- err = wasmTools .Run (ctx , stdin , stdout , nil , fsMap , args ... )
75
+ stderr := & bytes.Buffer {}
76
+ err = wasmTools .Run (ctx , stdin , stdout , stderr , fsMap , args ... )
73
77
if err != nil {
74
- return nil , fmt .Errorf ("error executing wasm-tools: %w" , err )
78
+ if _ , ok := err .(* sys.ExitError ); ok {
79
+ return nil , fmt .Errorf ("wasm-tools: %s" , stderr .String ())
80
+ }
81
+ return nil , fmt .Errorf ("wasm-tools: %w" , err )
75
82
}
76
83
return DecodeJSON (stdout )
77
84
}
0 commit comments