github.com/wawandco/ox@v0.13.6-0.20230809142027-913b3d837f2a/pkg/buffalotools/partialfeeder.go (about)

     1  package buffalotools
     2  
     3  import (
     4  	"io"
     5  	"io/fs"
     6  	"strings"
     7  )
     8  
     9  // NewPartialFeeder returns a partialFeeder that looks up for
    10  // template files in the given FS and returns its contents as string.
    11  func NewPartialFeeder(fs fs.FS) func(string) (string, error) {
    12  	return func(name string) (string, error) {
    13  		name = strings.TrimPrefix(name, "/")
    14  
    15  		f, err := fs.Open(name)
    16  		if err != nil {
    17  			return "", err
    18  		}
    19  
    20  		b, err := io.ReadAll(f)
    21  		if err != nil {
    22  			return "", err
    23  		}
    24  
    25  		return string(b), nil
    26  	}
    27  }