in pkg/testutil/bldr/oci_image.go [98:128]
func (b *OCIImageLayerBuilder) Build() v1.Layer {
dirsWritten := map[string]struct{}{}
var buf bytes.Buffer
tw := tar.NewWriter(&buf)
for path, info := range b.files {
dirs := b.findUnwrittenDirsInPath(path, dirsWritten)
for _, dir := range dirs {
err := tw.WriteHeader(&tar.Header{Typeflag: tar.TypeDir, Name: dir, Mode: 0777})
require.NoError(b.t, err)
}
err := tw.WriteHeader(&tar.Header{Typeflag: tar.TypeReg, Name: path, Size: int64(len(info.content)), Mode: int64(info.perm)})
require.NoError(b.t, err)
_, err = tw.Write(info.content)
require.NoError(b.t, err)
}
err := tw.Close()
require.NoError(b.t, err)
layer, err := tarball.LayerFromOpener(func() (io.ReadCloser, error) {
return io.NopCloser(bytes.NewReader(buf.Bytes())), nil
})
require.NoError(b.t, err)
return layer
}