package framework

import (
	"io"
	"io/ioutil"
	"net/url"
	"path"

	"github.com/pingcap/test-infra/sdk/resource"
)

func (f *Framework) Archiver(dataDst *[]string) resource.ArchiverFunc {
	return func(objectName string, reader io.Reader) (*url.URL, error) {
		ExpectEqual(objectName, path.Clean(objectName), "objectName should be a clean path")

		body, err := ioutil.ReadAll(reader)
		ExpectNoError(err)
		data := string(body)

		*dataDst = append(*dataDst, data)
		return nil, nil
	}
}
