github.com/octohelm/wagon@v0.0.0-20240308040401-88662650dc0b/pkg/engine/plan/task/fs_readfile.go (about) 1 package task 2 3 import ( 4 "context" 5 6 "dagger.io/dagger" 7 "github.com/octohelm/wagon/pkg/engine/daggerutil" 8 "github.com/octohelm/wagon/pkg/engine/plan/task/core" 9 ) 10 11 func init() { 12 core.DefaultFactory.Register(&ReadFile{}) 13 } 14 15 type ReadFile struct { 16 core.Task 17 Input core.FS `json:"input"` 18 Path string `json:"path"` 19 Contents string `json:"-" wagon:"generated,name=contents"` 20 } 21 22 func (e *ReadFile) Do(ctx context.Context) error { 23 return daggerutil.Do(ctx, func(c *dagger.Client) error { 24 dir := e.Input.LoadDirectory(c) 25 26 f := dir.File(e.Path) 27 28 contents, err := f.Contents(ctx) 29 if err != nil { 30 return err 31 } 32 e.Contents = contents 33 return nil 34 }) 35 }