version.go
1 package tools 2 3 import ( 4 "strconv" 5 "strings" 6 ) 7 8 // compareVersions compares two semver-like version strings (a vs b). 9 // Returns -1, 0, or 1. 10 func compareVersions(a, b string) int { 11 aParts := strings.Split(a, ".") 12 bParts := strings.Split(b, ".") 13 for i := 0; i < len(aParts) || i < len(bParts); i++ { 14 var av, bv int 15 if i < len(aParts) { 16 av, _ = strconv.Atoi(aParts[i]) 17 } 18 if i < len(bParts) { 19 bv, _ = strconv.Atoi(bParts[i]) 20 } 21 if av < bv { 22 return -1 23 } 24 if av > bv { 25 return 1 26 } 27 } 28 return 0 29 }