in internal/guestcollector/linux_guestcollector.go [291:315]
func (c *LinuxCollector) setUpRegex() {
for _, field := range lshwFields() {
if field == "size" {
expression := fmt.Sprintf(`"%s" : (\d+?)[\D]`, field)
reg := regexp.MustCompile(expression)
c.lshwRegexMapping[field] = reg
} else if field == "logicalname" || field == "product" {
expression := fmt.Sprintf(`"%s" : "(.*?)"`, field)
reg := regexp.MustCompile(expression)
c.lshwRegexMapping[field] = reg
} else if field == "Capacity" {
expression := fmt.Sprintf(`%s: .*\((\d+?)[\D]`, field)
reg := regexp.MustCompile(expression)
c.lshwRegexMapping[field] = reg
} else if field == "Device" {
expression := fmt.Sprintf(`%s: "(.*?)"`, field)
reg := regexp.MustCompile(expression)
c.lshwRegexMapping[field] = reg
} else {
expression := fmt.Sprintf(`%s: ([^\s]+)`, field)
reg := regexp.MustCompile(expression)
c.lshwRegexMapping[field] = reg
}
}
}