func()

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
}