@@ -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