wasi-module-sdk-go/executor.go

31 lines
617 B
Go
Raw Normal View History

2023-05-08 13:21:31 +00:00
package sdk
import (
"context"
2023-05-24 20:11:05 +00:00
2023-05-08 13:21:31 +00:00
"golang.org/x/exp/slog"
)
func NewExecutor(repoRoot, outDir, binDir string) Executor {
return Executor{
logger: slog.New(NewWASIHandler()),
repoRoot: repoRoot,
outDir: outDir,
binDir: binDir,
}
}
type Executor struct {
logger *slog.Logger
repoRoot string
outDir string
binDir string
}
2023-05-24 20:11:05 +00:00
func (e Executor) Run(ctx context.Context, m Module) {
execCtx := newWasiExecutionContext(ctx, e.logger, m, e.repoRoot, e.binDir, e.outDir)
2023-05-08 13:21:31 +00:00
if err := m.Execute(execCtx); err != nil {
e.logger.Error("Failed to execute module", slog.String("err", err.Error()))
}
}