mirror of https://github.com/docker/buildx.git
imagetools: simplify return type of annotation parser
Signed-off-by: Justin Chadwell <me@jedevc.com>
This commit is contained in:
parent
42a0f3d504
commit
54bb799d15
|
@ -147,17 +147,15 @@ func (r *Resolver) Combine(ctx context.Context, srcs []*Source, ann map[string]s
|
|||
if err != nil {
|
||||
return nil, ocispec.Descriptor{}, err
|
||||
}
|
||||
if len(annotations[exptypes.AnnotationIndex]) > 0 {
|
||||
for k, v := range annotations[exptypes.AnnotationIndex] {
|
||||
for k, v := range annotations {
|
||||
switch k.Type {
|
||||
case exptypes.AnnotationIndex:
|
||||
indexAnnotation[k.Key] = v
|
||||
}
|
||||
}
|
||||
if len(annotations[exptypes.AnnotationManifestDescriptor]) > 0 {
|
||||
for i := 0; i < len(newDescs); i++ {
|
||||
if newDescs[i].Annotations == nil {
|
||||
newDescs[i].Annotations = map[string]string{}
|
||||
}
|
||||
for k, v := range annotations[exptypes.AnnotationManifestDescriptor] {
|
||||
case exptypes.AnnotationManifestDescriptor:
|
||||
for i := 0; i < len(newDescs); i++ {
|
||||
if newDescs[i].Annotations == nil {
|
||||
newDescs[i].Annotations = map[string]string{}
|
||||
}
|
||||
if k.Platform == nil || k.PlatformString() == platforms.Format(*newDescs[i].Platform) {
|
||||
newDescs[i].Annotations[k.Key] = v
|
||||
}
|
||||
|
@ -296,11 +294,10 @@ func detectMediaType(dt []byte) (string, error) {
|
|||
return images.MediaTypeDockerSchema2ManifestList, nil
|
||||
}
|
||||
|
||||
func parseAnnotations(ann map[string]string) (map[string]map[exptypes.AnnotationKey]string, error) {
|
||||
func parseAnnotations(ann map[string]string) (map[exptypes.AnnotationKey]string, error) {
|
||||
// TODO: use buildkit's annotation parser once it supports setting custom prefix and ":" separator
|
||||
annotationRegexp := regexp.MustCompile(`^([a-z-]+)(?:\[([A-Za-z0-9_/-]+)\])?:(\S+)$`)
|
||||
indexAnnotations := make(map[exptypes.AnnotationKey]string)
|
||||
manifestDescriptorAnnotations := make(map[exptypes.AnnotationKey]string)
|
||||
annotations := make(map[exptypes.AnnotationKey]string)
|
||||
for k, v := range ann {
|
||||
groups := annotationRegexp.FindStringSubmatch(k)
|
||||
if groups == nil {
|
||||
|
@ -323,14 +320,14 @@ func parseAnnotations(ann map[string]string) (map[string]map[exptypes.Annotation
|
|||
Platform: ociPlatform,
|
||||
Key: key,
|
||||
}
|
||||
indexAnnotations[ak] = v
|
||||
annotations[ak] = v
|
||||
case exptypes.AnnotationManifestDescriptor:
|
||||
ak := exptypes.AnnotationKey{
|
||||
Type: typ,
|
||||
Platform: ociPlatform,
|
||||
Key: key,
|
||||
}
|
||||
manifestDescriptorAnnotations[ak] = v
|
||||
annotations[ak] = v
|
||||
case exptypes.AnnotationManifest:
|
||||
return nil, errors.Errorf("%q annotations are not supported yet", typ)
|
||||
case exptypes.AnnotationIndexDescriptor:
|
||||
|
@ -339,8 +336,5 @@ func parseAnnotations(ann map[string]string) (map[string]map[exptypes.Annotation
|
|||
return nil, errors.Errorf("unknown annotation type %q", typ)
|
||||
}
|
||||
}
|
||||
return map[string]map[exptypes.AnnotationKey]string{
|
||||
exptypes.AnnotationIndex: indexAnnotations,
|
||||
exptypes.AnnotationManifestDescriptor: manifestDescriptorAnnotations,
|
||||
}, nil
|
||||
return annotations, nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue