packages/moby-compose/go_version.go (25 lines of code) (raw):
package compose
import (
"strings"
"github.com/Azure/moby-packaging/pkg/archive"
"github.com/Azure/moby-packaging/pkg/goversion"
"github.com/Masterminds/semver/v3"
)
const (
threshold = "2.22.0"
)
func GoVersion(s *archive.Spec) string {
tag, _, _ := strings.Cut(s.Tag, "~")
v, err := semver.NewVersion(tag)
if err != nil {
return goversion.DefaultVersion
}
t, err := semver.NewVersion(threshold)
if err != nil {
return goversion.DefaultVersion
}
if v.Compare(t) >= 0 { // if v >= t
return goversion.OneTwentyThree
}
return goversion.DefaultVersion
}