Go library for reading GnuCash XML files
- Go 100%
| build | ||
| cmd/dump-transactions | ||
| testdata | ||
| filter.go | ||
| filter_test.go | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| README.md | ||
| scan.go | ||
| scan_test.go | ||
| types.go | ||
| types_test.go | ||
gnucash
This repository contains a simple Go library for reading GnuCash XML files.
It also contains a dump-transactions command-line program that can be used to
print transactions to stdout.
Installation
Install Go and run go install ./cmd/dump-transactions.
Usage
Usage: dump-transactions [flag]... <FILE>
Dumps transactions from a GnuCash XML file.
-aggregate string
Comma-separated list of fields for aggregating values, e.g. "date_year,account"
-collapse value
Account whose children should be collapsed into it, e.g. "Expenses"
-exclude value
Account (plus children) to exclude, e.g. "Assets" or "Expenses:Auto"
-fields string
Comma-separated list of fields to print (default "date,account,value,desc")
-format value
Output format (csv, json, text, tsv) (default tsv)
-list-accounts
Print account names
-list-fields
Print available fields for -fields
-max-date string
Maximum transaction date (YYYY-MM-DD, YYYY-MM, or YYYY)
-min-date string
Minimum transaction date (YYYY-MM-DD, YYYY-MM, or YYYY)
-only value
Account (plus children) to keep while excluding all others, e.g. "Expenses"
-only-involving value
Account (plus children) that must participate in transactions, e.g. "Assets:Checking"
Dumping all splits from transactions in CSV format:
dump-transactions -format csv testdata/finances.gnucash
2019-01-01,Assets:Current Assets:Checking Account,2000.00,Starting balance
2019-01-01,Equity:Opening Balances,-2000.00,Starting balance
2019-06-23,Expenses:Books,200.00,Textbooks
2019-06-23,Assets:Current Assets:Checking Account,-200.00,Textbooks
...
2020-02-20,Expenses:Auto:Fuel,20.00,More gas
2020-02-20,Assets:Current Assets:Cash in Wallet,-20.00,More gas
2020-05-12,Expenses:Books,3.00,Used novel
2020-05-12,Assets:Current Assets:Cash in Wallet,-3.00,Used novel
Aggregating expenses by year and account while collapsing several accounts’ children:
dump-transactions \
-aggregate date_year,account \
-only Expenses \
-exclude Expenses:Taxes \
-collapse Expenses:Auto \
-collapse Expenses:Utilities \
-min-date 2010 \
-max-date 2020 \
-format text \
testdata/finances.gnucash
2019 Expenses:Auto 100.00
2019 Expenses:Books 200.00
2020 Expenses:Auto 360.00
2020 Expenses:Books 18.00
2020 Expenses:Utilities 190.00
Listing expenses paid from a particular asset account:
dump-transactions \
-only Expenses \
-only-involving 'Assets:Current Assets:Cash in Wallet' \
-format text \
testdata/finances.gnucash
2020-02-01 Expenses:Auto:Fuel 40.00 Gasoline
2020-02-18 Expenses:Books 15.00 How-to book
2020-02-20 Expenses:Auto:Fuel 20.00 More gas
2020-05-12 Expenses:Books 3.00 Used novel