github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/fly/version/version.go (about) 1 package version 2 3 import ( 4 "fmt" 5 6 semver "github.com/cppforlife/go-semi-semantic/version" 7 ) 8 9 func GetSemver(versionStr string) (major int, minor int, patch int, err error) { 10 version, err := semver.NewVersionFromString(versionStr) 11 if err != nil { 12 return 13 } 14 15 if len(version.Release.Components) == 3 { 16 major = version.Release.Components[0].(semver.VerSegCompInt).I 17 minor = version.Release.Components[1].(semver.VerSegCompInt).I 18 patch = version.Release.Components[2].(semver.VerSegCompInt).I 19 } else { 20 err = fmt.Errorf("Wrong number of components") 21 return 22 } 23 24 return major, minor, patch, nil 25 } 26 27 func IsDev(versionStr string) bool { 28 version, err := semver.NewVersionFromString(versionStr) 29 if err != nil { 30 return false 31 } 32 33 for _, item := range version.PreRelease.Components { 34 if item.AsString() == "dev" { 35 return true 36 } 37 } 38 39 for _, item := range version.PostRelease.Components { 40 if item.AsString() == "dev" { 41 return true 42 } 43 } 44 return false 45 }