diff --git a/cmd/cli/main.go b/cmd/cli/main.go index a4aa5d8..4e0bea3 100644 --- a/cmd/cli/main.go +++ b/cmd/cli/main.go @@ -1,6 +1,7 @@ package cli import ( + "bufio" "flag" "fmt" "io" @@ -93,6 +94,9 @@ func Main() { deltas = deltas.Like(ledger.LikeWith(config.Query.With)) } + w := bufio.NewWriter(os.Stdout) + defer w.Flush() + switch cmd[:3] { case "bal": balances := deltas.Balances(). @@ -100,7 +104,7 @@ func Main() { KindaLike(q). KindaGroup(group). Nonzero() - FPrintBalances(os.Stdout, "", balances, nil, config.Query.USDOnly, config.Query.Normalize, time.Now().Format("2006-01-02")) + FPrintBalances(w, "", balances, nil, config.Query.USDOnly, config.Query.Normalize, time.Now().Format("2006-01-02")) case "reg": transactions := deltas.Transactions() @@ -117,8 +121,8 @@ func Main() { shouldPrint = shouldPrint || len(balances) > 0 } if shouldPrint { - fmt.Printf("%s\t%s\n", transaction[0].Date, transaction[0].Description) - FPrintBalances(os.Stdout, "\t\t", balances, transactions[:i+1].Deltas().Like(q).Group(group).Balances().WithBPIsAt(bpis, transaction[0].Date).Nonzero(), config.Query.USDOnly, config.Query.Normalize, transaction[0].Date) + fmt.Fprintf(w, "%s\t%s\n", transaction[0].Date, transaction[0].Description) + FPrintBalances(w, "\t\t", balances, transactions[:i+1].Deltas().Like(q).Group(group).Balances().WithBPIsAt(bpis, transaction[0].Date).Nonzero(), config.Query.USDOnly, config.Query.Normalize, transaction[0].Date) } } default: