github.com/buildpack/pack@v0.5.0/inspect_builder.go (about) 1 package pack 2 3 import ( 4 "context" 5 6 "github.com/pkg/errors" 7 8 "github.com/buildpack/pack/builder" 9 "github.com/buildpack/pack/dist" 10 "github.com/buildpack/pack/image" 11 "github.com/buildpack/pack/style" 12 ) 13 14 type BuilderInfo struct { 15 Description string 16 Stack string 17 RunImage string 18 RunImageMirrors []string 19 Buildpacks []builder.BuildpackMetadata 20 Order dist.Order 21 Lifecycle builder.LifecycleDescriptor 22 CreatedBy builder.CreatorMetadata 23 } 24 25 type BuildpackInfo struct { 26 ID string 27 Version string 28 } 29 30 func (c *Client) InspectBuilder(name string, daemon bool) (*BuilderInfo, error) { 31 img, err := c.imageFetcher.Fetch(context.Background(), name, daemon, false) 32 if err != nil { 33 if errors.Cause(err) == image.ErrNotFound { 34 return nil, nil 35 } 36 return nil, err 37 } 38 39 bldr, err := builder.GetBuilder(img) 40 if err != nil { 41 return nil, errors.Wrapf(err, "invalid builder %s", style.Symbol(name)) 42 } 43 44 return &BuilderInfo{ 45 Description: bldr.Description(), 46 Stack: bldr.StackID, 47 RunImage: bldr.GetStackInfo().RunImage.Image, 48 RunImageMirrors: bldr.GetStackInfo().RunImage.Mirrors, 49 Buildpacks: bldr.GetBuildpacks(), 50 Order: bldr.GetOrder(), 51 Lifecycle: bldr.GetLifecycleDescriptor(), 52 CreatedBy: bldr.GetCreatedBy(), 53 }, nil 54 }