mirror of https://github.com/docker/docs.git
Use Sscanf instead of regexp
Docker-DCO-1.1-Signed-off-by: Charles Lindsay <chaz@chazomatic.us> (github: chazomaticus)
This commit is contained in:
parent
14b2b2b7c2
commit
5b97e00438
|
|
@ -609,28 +609,22 @@ func GetKernelVersion() (*KernelVersionInfo, error) {
|
||||||
|
|
||||||
func ParseRelease(release string) (*KernelVersionInfo, error) {
|
func ParseRelease(release string) (*KernelVersionInfo, error) {
|
||||||
var (
|
var (
|
||||||
parts [3]int
|
kernel, major, minor, parsed int
|
||||||
err error
|
err error
|
||||||
)
|
)
|
||||||
|
|
||||||
re := regexp.MustCompile(`^([0-9]+)\.([0-9]+)\.([0-9]+)`)
|
parsed, err = fmt.Sscanf(release, "%d.%d.%d", &kernel, &major, &minor)
|
||||||
subs := re.FindStringSubmatch(release)
|
|
||||||
|
|
||||||
if len(subs) < 4 {
|
|
||||||
return nil, errors.New("Can't parse kernel version " + release)
|
|
||||||
}
|
|
||||||
|
|
||||||
for i := 0; i < 3; i++ {
|
|
||||||
parts[i], err = strconv.Atoi(subs[i+1])
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
if parsed < 3 {
|
||||||
|
return nil, errors.New("Can't parse kernel version " + release)
|
||||||
}
|
}
|
||||||
|
|
||||||
return &KernelVersionInfo{
|
return &KernelVersionInfo{
|
||||||
Kernel: parts[0],
|
Kernel: kernel,
|
||||||
Major: parts[1],
|
Major: major,
|
||||||
Minor: parts[2],
|
Minor: minor,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue