content: Add InfoReaderProvider

The interface that combines both content.InfoProvider and
content.Provider was duplicated in multiple places - create one directly
in `content` package and use it instead.

Signed-off-by: Paweł Gronowski <pawel.gronowski@docker.com>
This commit is contained in:
Paweł Gronowski
2024-01-05 16:37:26 +01:00
parent c7c6bb9d13
commit 8235665e7e
5 changed files with 15 additions and 33 deletions

View File

@@ -58,11 +58,6 @@ var LineTreeFormat = TreeFormat{
Spacer: " ",
}
type ContentReader interface {
content.Provider
content.InfoProvider
}
type ImageTreePrinter struct {
verbose bool
w io.Writer
@@ -101,7 +96,7 @@ func NewImageTreePrinter(opts ...PrintOpt) *ImageTreePrinter {
}
// PrintImageTree prints an image and all its sub elements
func (p *ImageTreePrinter) PrintImageTree(ctx context.Context, img images.Image, store ContentReader) error {
func (p *ImageTreePrinter) PrintImageTree(ctx context.Context, img images.Image, store content.InfoReaderProvider) error {
fmt.Fprintln(p.w, img.Name)
subchild := p.format.SkipLine
fmt.Fprintf(p.w, "%s Created: %s\n", subchild, img.CreatedAt)
@@ -113,12 +108,12 @@ func (p *ImageTreePrinter) PrintImageTree(ctx context.Context, img images.Image,
}
// PrintManifestTree prints a manifest and all its sub elements
func (p *ImageTreePrinter) PrintManifestTree(ctx context.Context, desc ocispec.Descriptor, store ContentReader) error {
func (p *ImageTreePrinter) PrintManifestTree(ctx context.Context, desc ocispec.Descriptor, store content.InfoReaderProvider) error {
// start displaying tree from the root descriptor perspective, which is a single child view
return p.printManifestTree(ctx, desc, store, p.format.LastDrop, p.format.Spacer)
}
func (p *ImageTreePrinter) printManifestTree(ctx context.Context, desc ocispec.Descriptor, store ContentReader, prefix, childprefix string) error {
func (p *ImageTreePrinter) printManifestTree(ctx context.Context, desc ocispec.Descriptor, store content.InfoReaderProvider, prefix, childprefix string) error {
subprefix := childprefix + p.format.MiddleDrop
subchild := childprefix + p.format.SkipLine
fmt.Fprintf(p.w, "%s%s @%s (%d bytes)\n", prefix, desc.MediaType, desc.Digest, desc.Size)
@@ -177,7 +172,7 @@ func (p *ImageTreePrinter) printManifestTree(ctx context.Context, desc ocispec.D
return nil
}
func (p *ImageTreePrinter) showContent(ctx context.Context, store ContentReader, desc ocispec.Descriptor, prefix string) error {
func (p *ImageTreePrinter) showContent(ctx context.Context, store content.InfoReaderProvider, desc ocispec.Descriptor, prefix string) error {
if p.verbose {
info, err := store.Info(ctx, desc.Digest)
if err != nil {