11package main
22
33import (
4- "os "
4+ "io/fs "
55 "path/filepath"
66
77 "github.com/crossplane/function-sdk-go/errors"
@@ -18,12 +18,12 @@ type TemplateGetter interface {
1818}
1919
2020// NewTemplateSourceGetter returns a TemplateGetter based on the cd source
21- func NewTemplateSourceGetter (in * v1beta1.GoTemplate ) (TemplateGetter , error ) {
21+ func NewTemplateSourceGetter (fsys fs. FS , in * v1beta1.GoTemplate ) (TemplateGetter , error ) {
2222 switch in .Source {
2323 case v1beta1 .InlineSource :
2424 return newInlineSource (in )
2525 case v1beta1 .FileSystemSource :
26- return newFileSource (in )
26+ return newFileSource (fsys , in )
2727 case "" :
2828 return nil , errors .Errorf ("source is required" )
2929 default :
@@ -62,14 +62,14 @@ func (fs *FileSource) GetTemplates() string {
6262 return fs .Template
6363}
6464
65- func newFileSource (in * v1beta1.GoTemplate ) (* FileSource , error ) {
65+ func newFileSource (fsys fs. FS , in * v1beta1.GoTemplate ) (* FileSource , error ) {
6666 if in .FileSystem == nil || in .FileSystem .DirPath == "" {
6767 return nil , errors .New ("fileSystem.dirPath should be provided" )
6868 }
6969
7070 d := in .FileSystem .DirPath
7171
72- tmpl , err := readTemplates (d )
72+ tmpl , err := readTemplates (fsys , d )
7373 if err != nil {
7474 return nil , errors .Errorf ("cannot read tmpl from the folder %s: %s" , * in .FileSystem , err )
7575 }
@@ -80,10 +80,10 @@ func newFileSource(in *v1beta1.GoTemplate) (*FileSource, error) {
8080 }, nil
8181}
8282
83- func readTemplates (dir string ) (string , error ) {
83+ func readTemplates (fsys fs. FS , dir string ) (string , error ) {
8484 tmpl := ""
8585
86- if err := filepath .WalkDir (dir , func (path string , dirEntry os .DirEntry , e error ) error {
86+ if err := fs .WalkDir (fsys , dir , func (path string , dirEntry fs .DirEntry , e error ) error {
8787 if e != nil {
8888 return e
8989 }
@@ -103,7 +103,7 @@ func readTemplates(dir string) (string, error) {
103103 return nil
104104 }
105105
106- data , err := os .ReadFile (path )
106+ data , err := fs .ReadFile (fsys , path )
107107 if err != nil {
108108 return err
109109 }
0 commit comments