github.com/YousefHaggyHeroku/pack@v1.5.5/internal/builder/image_fetcher_wrapper.go (about)

     1  package builder
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/buildpacks/imgutil"
     7  
     8  	pubcfg "github.com/YousefHaggyHeroku/pack/config"
     9  )
    10  
    11  type ImageFetcher interface {
    12  	// Fetch fetches an image by resolving it both remotely and locally depending on provided parameters.
    13  	// If daemon is true, it will look return a `local.Image`. Pull, applicable only when daemon is true, will
    14  	// attempt to pull a remote image first.
    15  	Fetch(ctx context.Context, name string, daemon bool, pullPolicy pubcfg.PullPolicy) (imgutil.Image, error)
    16  }
    17  
    18  type ImageFetcherWrapper struct {
    19  	fetcher ImageFetcher
    20  }
    21  
    22  func NewImageFetcherWrapper(fetcher ImageFetcher) *ImageFetcherWrapper {
    23  	return &ImageFetcherWrapper{
    24  		fetcher: fetcher,
    25  	}
    26  }
    27  
    28  func (w *ImageFetcherWrapper) Fetch(
    29  	ctx context.Context,
    30  	name string,
    31  	daemon bool,
    32  	pullPolicy pubcfg.PullPolicy,
    33  ) (Inspectable, error) {
    34  	return w.fetcher.Fetch(ctx, name, daemon, pullPolicy)
    35  }