Skip to content

Commit 13d1493

Browse files
committed
Quick Save
1 parent ab28227 commit 13d1493

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

cmds/csvjoin/csvjoin.go

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ import (
2525
"fmt"
2626
"io"
2727
"io/ioutil"
28-
"log"
2928
"os"
3029
"path"
3130
"strings"
@@ -67,6 +66,7 @@ merged-data.csv..
6766
outputFName string
6867

6968
// App Options
69+
verbose bool
7070
csv1FName string
7171
csv2FName string
7272
col1 int
@@ -150,6 +150,7 @@ func init() {
150150
flag.StringVar(&outputFName, "output", "", "output filename")
151151

152152
// App Options
153+
flag.BoolVar(&verbose, "verbose", false, "output processing count to stderr")
153154
flag.StringVar(&csv1FName, "csv1", "", "first CSV filename")
154155
flag.StringVar(&csv2FName, "csv2", "", "second CSV filename")
155156
flag.IntVar(&col1, "col1", 0, "column to on join on in first CSV file")
@@ -261,14 +262,17 @@ func main() {
261262

262263
stopWords := strings.Split(stopWordsOption, ":")
263264
w := csv.NewWriter(out)
264-
for _, rowA := range csv1Table {
265+
for i, rowA := range csv1Table {
265266
if col1 < len(rowA) && rowA[col1] != "" {
266267
// We are relying on the side effect of writing the CSV output in scanTable
267268
scanTable(w, rowA, col1, csv2Table, col2, stopWords)
269+
w.Flush()
270+
if err := w.Error(); err != nil {
271+
fmt.Fprintf(os.Stderr, "Can't write CSV at line %d of csv table 1, %s", i, err)
272+
}
273+
}
274+
if verbose == true && (i%100) == 0 {
275+
fmt.Fprintf(os.Stderr, "%d rows of csv table 1 processed\n", i)
268276
}
269-
}
270-
w.Flush()
271-
if err := w.Error(); err != nil {
272-
log.Fatal(err)
273277
}
274278
}

0 commit comments

Comments
 (0)