|
|
@@ -48,6 +48,7 @@ func (v Version) IsValid() bool { |
|
|
|
} |
|
|
|
|
|
|
|
var InvalidVersion = Version{-1, -1, -1} |
|
|
|
var TooHighVersion = Version{-2, -2, -2} |
|
|
|
|
|
|
|
func parseVersion(s string) (Version, bool) { |
|
|
|
if len(s) < 2 { |
|
|
@@ -66,17 +67,20 @@ func parseVersion(s string) (Version, bool) { |
|
|
|
if len(part) == 0 || part[0] == '0' { |
|
|
|
return InvalidVersion, false |
|
|
|
} |
|
|
|
num, err := strconv.Atoi(part) |
|
|
|
num, err := strconv.ParseInt(part, 10, 32) |
|
|
|
if err != nil { |
|
|
|
if err.(*strconv.NumError).Err == strconv.ErrRange { |
|
|
|
return TooHighVersion, false |
|
|
|
} |
|
|
|
return InvalidVersion, false |
|
|
|
} |
|
|
|
switch i { |
|
|
|
case 0: |
|
|
|
v.Major = num |
|
|
|
v.Major = int(num) |
|
|
|
case 1: |
|
|
|
v.Minor = num |
|
|
|
v.Minor = int(num) |
|
|
|
case 2: |
|
|
|
v.Patch = num |
|
|
|
v.Patch = int(num) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|