Skip to content

Commit 7c57846

Browse files
Remove unused columns in CSV output from table subcommand when using diffless tally mode.
1 parent 95ffda5 commit 7c57846

1 file changed

Lines changed: 37 additions & 27 deletions

File tree

table.go

Lines changed: 37 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ func table(
136136
}
137137

138138
if useCsv {
139-
err := writeCsv(rankedTallies, showEmail)
139+
err := writeCsv(rankedTallies, tallyOpts, showEmail)
140140
if err != nil {
141141
return err
142142
}
@@ -148,50 +148,60 @@ func table(
148148
return nil
149149
}
150150

151-
func toRecord(t tally.FinalTally, showEmail bool) []string {
151+
func toRecord(
152+
t tally.FinalTally,
153+
opts tally.TallyOpts,
154+
showEmail bool,
155+
) []string {
152156
record := []string{t.AuthorName}
153157

154158
if showEmail {
155159
record = append(record, t.AuthorEmail)
156160
}
157161

158-
return append(
159-
record,
160-
strconv.Itoa(t.Commits),
161-
strconv.Itoa(t.LinesAdded),
162-
strconv.Itoa(t.LinesRemoved),
163-
strconv.Itoa(t.FileCount),
164-
t.LastCommitTime.Format(time.RFC3339),
165-
)
162+
record = append(record, strconv.Itoa(t.Commits))
163+
164+
if opts.IsDiffMode() {
165+
record = append(
166+
record,
167+
strconv.Itoa(t.LinesAdded),
168+
strconv.Itoa(t.LinesRemoved),
169+
strconv.Itoa(t.FileCount),
170+
)
171+
}
172+
173+
return append(record, t.LastCommitTime.Format(time.RFC3339))
166174
}
167175

168-
func writeCsv(tallies []tally.FinalTally, showEmail bool) error {
176+
func writeCsv(
177+
tallies []tally.FinalTally,
178+
opts tally.TallyOpts,
179+
showEmail bool,
180+
) error {
169181
w := csv.NewWriter(os.Stdout)
170182

171183
// Write header
184+
columnHeaders := []string{"name"}
172185
if showEmail {
173-
w.Write([]string{
174-
"name",
175-
"email",
176-
"commits",
177-
"lines added",
178-
"lines removed",
179-
"files",
180-
"last commit time",
181-
})
182-
} else {
183-
w.Write([]string{
184-
"name",
185-
"commits",
186+
columnHeaders = append(columnHeaders, "email")
187+
}
188+
189+
columnHeaders = append(columnHeaders, "commits")
190+
191+
if opts.IsDiffMode() {
192+
columnHeaders = append(
193+
columnHeaders,
186194
"lines added",
187195
"lines removed",
188196
"files",
189-
"last commit time",
190-
})
197+
)
191198
}
192199

200+
columnHeaders = append(columnHeaders, "last commit time")
201+
w.Write(columnHeaders)
202+
193203
for _, tally := range tallies {
194-
record := toRecord(tally, showEmail)
204+
record := toRecord(tally, opts, showEmail)
195205
if err := w.Write(record); err != nil {
196206
return fmt.Errorf("error writing CSV record to stdout: %w", err)
197207
}

0 commit comments

Comments
 (0)