in tools/mconnect/parser/parser.go [36:82]
func Groups(path string) ([]string, error) {
if err := ValidFileFormat(path); err != nil {
return nil, err
}
file, err := os.Open(path)
if err != nil {
return nil, err
}
defer file.Close()
reader := csv.NewReader(file)
reader.FieldsPerRecord = -1
headers, err := reader.Read()
if err != nil {
return nil, err
}
appInd, err := appIndex(headers)
if err != nil {
return nil, err
}
appsSet := make(map[string]int)
applications := []string{}
for {
record, err := reader.Read()
if err == io.EOF {
break
}
if err != nil {
fmt.Fprintf(os.Stderr, "Error reading record: %v\n", err)
continue
}
application := strings.Split(record[appInd], ",")[0]
if _, ok := appsSet[application]; !ok {
appsSet[application] = 0
applications = append(applications, application)
}
}
return applications, nil
}