@@ 12,8 12,8 @@ import (
"time"
"unicode"
- "github.com/alfredxing/calc/compute"
"git.sr.ht/~whereswaldon/ledger/decimal"
+ "github.com/alfredxing/calc/compute"
date "github.com/joyt/godate"
)
@@ 54,6 54,24 @@ func ParseLedger(ledgerReader io.Reader) (generalLedger []*Transaction, err erro
return
}
+// ParseNamedLedger parses a ledger file from a reader assuming that it was loaded
+// from the path in name. It will search for included ledger files relative to the
+// given path.
+func ParseNamedLedger(name string, ledgerReader io.Reader) (generalLedger []*Transaction, err error) {
+ parseLedger(name, ledgerReader, func(t *Transaction, e error) (stop bool) {
+ if e != nil {
+ err = e
+ stop = true
+ return
+ }
+
+ generalLedger = append(generalLedger, t)
+ return
+ })
+
+ return
+}
+
// ParseLedgerAsync parses a ledger file and returns a Transaction and error channels .
func ParseLedgerAsync(ledgerReader io.Reader) (c chan *Transaction, e chan error) {
c = make(chan *Transaction)