nicer but my fsm is wrong if i want to bundle ands first
All checks were successful
cicd / ci (push) Successful in 3m29s

This commit is contained in:
Bel LaPointe
2024-12-13 10:49:19 -07:00
parent 012024ac66
commit d7edc1ff1d
2 changed files with 78 additions and 90 deletions

View File

@@ -40,31 +40,10 @@ func Main() {
}
cmd := positional[0]
q, err := BuildQuery(positional)
q, err := BuildQuery(positional[1:])
if err != nil {
panic(err)
}
panic(q)
likePattern := ""
notLikePattern := ""
i := 1
for i < len(positional) {
switch positional[i] {
case "not":
_ = notLikePattern
panic(positional[i:])
case "and":
panic(positional[i:])
default:
if likePattern == "" {
likePattern = positional[i]
} else {
likePattern = fmt.Sprintf("%s|%s", likePattern, positional[i])
}
}
i += 1
}
deltas, err := ledgerFiles.Deltas()
if err != nil {
@@ -86,37 +65,22 @@ func Main() {
switch cmd[:3] {
case "bal":
balances := deltas.Balances()
if likePattern != "" {
balances = balances.Like(likePattern)
}
if notLikePattern != "" {
balances = balances.NotLike(notLikePattern)
}
/*
balances := deltas.Balances()
if likePattern != "" {
balances = balances.Like(likePattern)
}
if notLikePattern != "" {
balances = balances.NotLike(notLikePattern)
}
FPrintBalances(os.Stdout, "", balances, nil)
FPrintBalances(os.Stdout, "", balances, nil)
*/
case "reg":
transactions := deltas.Transactions()
likes := []ledger.Like{}
if likePattern != "" {
like := ledger.LikeName(likePattern)
transactions = transactions.Like(like)
if config.Query.Reverse {
like = ledger.LikeNot(like)
}
likes = append(likes, like)
}
if notLikePattern != "" {
like := ledger.NotLikeName(notLikePattern)
transactions = transactions.NotLike(like)
if config.Query.Reverse {
like = ledger.LikeNot(like)
}
likes = append(likes, like)
}
for i, transaction := range transactions {
balances := ledger.Deltas(transaction).Like(likes...).Balances()
balances := ledger.Deltas(transaction).Like(q).Balances()
shouldPrint := false
shouldPrint = shouldPrint || len(balances) > 2
if config.Query.NoExchanging {
@@ -129,7 +93,7 @@ func Main() {
}
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(likes...).Balances())
FPrintBalances(os.Stdout, "\t\t", balances, transactions[:i+1].Deltas().Like(q).Balances())
}
}
default: