func parseDistribRelease()

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
}