Jonathan A. Sternberg 8fb1157b5f
vendor: github.com/moby/buildkit v0.21.0-rc1
Signed-off-by: Jonathan A. Sternberg <jonathan.sternberg@docker.com>
2025-04-09 10:28:03 -05:00

50 lines
1023 B
Go

package pb
import (
"slices"
ocispecs "github.com/opencontainers/image-spec/specs-go/v1"
)
func (p *Platform) Spec() ocispecs.Platform {
result := ocispecs.Platform{
OS: p.OS,
Architecture: p.Architecture,
Variant: p.Variant,
OSVersion: p.OSVersion,
}
if p.OSFeatures != nil {
result.OSFeatures = slices.Clone(p.OSFeatures)
}
return result
}
func PlatformFromSpec(p ocispecs.Platform) *Platform {
result := &Platform{
OS: p.OS,
Architecture: p.Architecture,
Variant: p.Variant,
OSVersion: p.OSVersion,
}
if p.OSFeatures != nil {
result.OSFeatures = slices.Clone(p.OSFeatures)
}
return result
}
func ToSpecPlatforms(p []*Platform) []ocispecs.Platform {
out := make([]ocispecs.Platform, 0, len(p))
for _, pp := range p {
out = append(out, pp.Spec())
}
return out
}
func PlatformsFromSpec(p []ocispecs.Platform) []*Platform {
out := make([]*Platform, 0, len(p))
for _, pp := range p {
out = append(out, PlatformFromSpec(pp))
}
return out
}