diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-07-12 16:19:54 +0300 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2018-07-12 20:36:12 +0300 |
commit | beec1fc98e5d37bba742d6bc2a0ff7c344b469f8 (patch) | |
tree | be435ef05d24a14d83279787c1f9254d34a91e8a /resource | |
parent | 306573def0e20ec16ee5c447981cc09ed8bb7ec7 (diff) |
resource: Fix resources.Concat for transformed resources
Fixes #4936
Diffstat (limited to 'resource')
-rw-r--r-- | resource/transform.go | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/resource/transform.go b/resource/transform.go index fcb101438..005ede767 100644 --- a/resource/transform.go +++ b/resource/transform.go @@ -188,12 +188,25 @@ type transformedResource struct { Resource } +type readSeeker struct { + io.Reader + io.Seeker + io.Closer +} + +func (r *readSeeker) Close() error { + return nil +} + +func (r *readSeeker) Seek(offset int64, whence int) (int64, error) { + panic("Seek is not supported by this io.Reader") +} + func (r *transformedResource) ReadSeekCloser() (ReadSeekCloser, error) { - rc, ok := r.Resource.(ReadSeekCloserResource) - if !ok { - return nil, fmt.Errorf("resource %T is not a ReadSeekerCloserResource", rc) + if err := r.initContent(); err != nil { + return nil, err } - return rc.ReadSeekCloser() + return &readSeeker{Reader: strings.NewReader(r.content)}, nil } func (r *transformedResource) transferTransformedValues(another *transformedResource) { |