func Groups()

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
}