func parseOsRelease()

in osinfo/osinfo_linux.go [150:177]


func parseOsRelease(releaseDetails string) (shortName, longName, version string) {
	scanner := bufio.NewScanner(strings.NewReader(releaseDetails))

	for scanner.Scan() {
		entry := strings.Split(scanner.Text(), "=")
		switch entry[0] {
		case "":
			continue
		case "PRETTY_NAME":
			longName = strings.Trim(entry[1], `"`)
		case "VERSION_ID":
			version = strings.Trim(entry[1], `"`)
		case "ID":
			shortName = strings.Trim(entry[1], `"`)
		}

		// TODO: Replace with binary mask
		if longName != "" && version != "" && shortName != "" {
			break
		}
	}

	if shortName == "" {
		shortName = DefaultShortNameLinux
	}

	return shortName, longName, version
}