X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/43d9a42f838e134b5f7f639375f1f0752292f694..289d2cf581b59632369087388f6163f3979c5e86:/tools/arv-sync-groups/arv-sync-groups.go diff --git a/tools/arv-sync-groups/arv-sync-groups.go b/tools/arv-sync-groups/arv-sync-groups.go index a1a73ca923..d7efdefb6f 100644 --- a/tools/arv-sync-groups/arv-sync-groups.go +++ b/tools/arv-sync-groups/arv-sync-groups.go @@ -335,15 +335,25 @@ func doMain(cfg *ConfigParams) error { } // ProcessFile reads the CSV file and process every record -func ProcessFile(cfg *ConfigParams, f *os.File, userIDToUUID map[string]string, groupNameToUUID map[string]string, remoteGroups map[string]*GroupInfo, allUsers map[string]arvados.User) (groupsCreated, membersAdded, membersSkipped int, err error) { +func ProcessFile( + cfg *ConfigParams, + f *os.File, + userIDToUUID map[string]string, + groupNameToUUID map[string]string, + remoteGroups map[string]*GroupInfo, + allUsers map[string]arvados.User, +) (groupsCreated, membersAdded, membersSkipped int, err error) { + lineNo := 0 csvReader := csv.NewReader(f) + csvReader.FieldsPerRecord = 2 for { record, e := csvReader.Read() if e == io.EOF { break } + lineNo++ if e != nil { - err = fmt.Errorf("error reading %q: %s", cfg.Path, err) + err = fmt.Errorf("error parsing %q, line %d", cfg.Path, lineNo) return } groupName := strings.TrimSpace(record[0])