Merge pull request #996 from crazy-max/buildinfo-use-helper
imagetools inspect: use buildinfo helperpull/1004/head
						commit
						6ffe22b843
					
				@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					package imageutil
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import (
 | 
				
			||||||
 | 
						"encoding/base64"
 | 
				
			||||||
 | 
						"encoding/json"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						binfotypes "github.com/moby/buildkit/util/buildinfo/types"
 | 
				
			||||||
 | 
						"github.com/pkg/errors"
 | 
				
			||||||
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// BuildInfo returns build info from image config.
 | 
				
			||||||
 | 
					func BuildInfo(dt []byte) (*binfotypes.BuildInfo, error) {
 | 
				
			||||||
 | 
						if len(dt) == 0 {
 | 
				
			||||||
 | 
							return nil, nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var config binfotypes.ImageConfig
 | 
				
			||||||
 | 
						if err := json.Unmarshal(dt, &config); err != nil {
 | 
				
			||||||
 | 
							return nil, errors.Wrap(err, "failed to unmarshal image config")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						if len(config.BuildInfo) == 0 {
 | 
				
			||||||
 | 
							return nil, nil
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						dtbi, err := base64.StdEncoding.DecodeString(config.BuildInfo)
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							return nil, err
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						var bi binfotypes.BuildInfo
 | 
				
			||||||
 | 
						if err = json.Unmarshal(dtbi, &bi); err != nil {
 | 
				
			||||||
 | 
							return nil, errors.Wrap(err, "failed to decode buildinfo from image config")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						return &bi, nil
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
					Loading…
					
					
				
		Reference in New Issue