code.icb4dc0.de/buildr/wasi-module-sdk-go@v0.0.0-20230524201105-cc52d195017b/executor.go (about) 1 package sdk 2 3 import ( 4 "context" 5 6 "golang.org/x/exp/slog" 7 ) 8 9 func NewExecutor(repoRoot, outDir, binDir string) Executor { 10 return Executor{ 11 logger: slog.New(NewWASIHandler()), 12 repoRoot: repoRoot, 13 outDir: outDir, 14 binDir: binDir, 15 } 16 } 17 18 type Executor struct { 19 logger *slog.Logger 20 repoRoot string 21 outDir string 22 binDir string 23 } 24 25 func (e Executor) Run(ctx context.Context, m Module) { 26 execCtx := newWasiExecutionContext(ctx, e.logger, m, e.repoRoot, e.binDir, e.outDir) 27 if err := m.Execute(execCtx); err != nil { 28 e.logger.Error("Failed to execute module", slog.String("err", err.Error())) 29 } 30 }