in providers/linux/os.go [265:295]
func parseDistribRelease(platform string, content []byte) (*types.OSInfo, error) {
var (
line = string(bytes.TrimSpace(content))
keys = distribReleaseRegexp.SubexpNames()
os = &types.OSInfo{
Type: "linux",
Platform: platform,
}
)
for i, m := range distribReleaseRegexp.FindStringSubmatch(line) {
switch keys[i] {
case "name":
os.Name = m
case "version":
os.Version = m
case "major":
os.Major, _ = strconv.Atoi(m)
case "minor":
os.Minor, _ = strconv.Atoi(m)
case "patch":
os.Patch, _ = strconv.Atoi(m)
case "codename":
os.Version += " (" + m + ")"
os.Codename = m
}
}
os.Family = linuxFamily(os.Platform)
return os, nil
}