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  }