This is rusty version of Tackler CLI application.
Tackler is an accounting engine and reporting tool for text based double-entry accounting.
This is Technology Preview Release of the rusty Tackler.
The Tackler Journal Format is fully
supported and also Filesystem
and Git Storage backends are
supported. See tackler --help
how to use these.
This TPR has support for register
and balance
reports with support for Commodities and Shares.
AS THIS IS TECHNOLOGY PREVIEW RELEASE, THERE ARE MISSING FEATURES AND KNOWN INCONSISTENCIES WITH EXISTING TACKLER IMPLEMENTATION.
Currently you will need nightly channel of Rust to build tackler
````bash cargo install tackler
tackler --version tackler --help ````
bash
mkdir -p tackler/txns; cd tackler
````bash cat > txns/journal.txn << EOF 2023-04-01 'It was warm, sunny day Expenses:Ice_cream 2 Assets:Cash
2023-05-01 'Ice cream 'n soda! Expenses:BostonCooler 3 Assets:Cash
EOF ````
bash
tackler --input.file txns/journal.txn --reports balance
````
0.00 -5.00 Assets
-5.00 -5.00 Assets:Cash
0.00 5.00 Expenses
3.00 3.00 Expenses:BostonCooler
0.00
````
bash
tackler --input.file txns/journal.txn --reports balance --accounts '^Expenses'
````
0.00 5.00 Expenses
3.00 3.00 Expenses:BostonCooler
5.00
````
bash
git clone --recurse-submodules https://github.com/e257-fi/tackler-ng
bash
tackler \
--input.git.repo tackler-ng/suite/audit/audit-repo.git \
--input.git.dir txns \
--input.git.ref txns-1E1 \
--reports balance \
--accounts '^a:.*' \
--audit.mode true
```` Git Storage commit : 4aa4e9797501c1aefc92f32dff30ab462dae5545 reference : txns-1E1 directory : txns suffix : txn message : txns-1E1: 2016/12
Txn Set Checksum SHA-256 : 9b29071e1bf228cfbd31ca2b8e7263212e4b86e51cfee1e8002c9b795ab03f76 Set size : 10
0.00 -161.00 a:ay2016
-6.00 -6.00 a:ay2016:am02
-14.00 -14.00 a:ay2016:am03
-19.00 -19.00 a:ay2016:am04
-26.00 -26.00 a:ay2016:am05
-1.00 -1.00 a:ay2016:am07
-7.00 -7.00 a:ay2016:am08
-13.00 -13.00 a:ay2016:am09
-19.00 -19.00 a:ay2016:am10
-25.00 -25.00 a:ay2016:am11
-161.00
````
bash
tackler \
--input.git.repo tackler-ng/suite/audit/audit-repo.git \
--input.git.dir txns \
--input.git.ref txns-1E5 \
--reports balance \
--accounts '^a:.*' \
--audit.mode true
```` Git Storage commit : cb56fdcdd2b56d41fc08cc5af4a3b410896f03b5 reference : txns-1E5 directory : txns suffix : txn message : txns-1E5: 2016/12
Txn Set Checksum SHA-256 : 27060dc1ebde35bebd8f7af2fd9815bc9949558d3e3c85919813cd80748c99a7 Set size : 100000
0.00 -1574609.01 a:ay2016
-135600.00 -135600.00 a:ay2016:am01
-118950.00 -118950.00 a:ay2016:am02
-135631.00 -135631.00 a:ay2016:am03
-127137.00 -127137.00 a:ay2016:am04
-135616.00 -135616.00 a:ay2016:am05
-127154.00 -127154.00 a:ay2016:am06
-135600.00 -135600.00 a:ay2016:am07
-135603.00 -135603.00 a:ay2016:am08
-127140.00 -127140.00 a:ay2016:am09
-135619.00 -135619.00 a:ay2016:am10
-127126.00 -127126.00 a:ay2016:am11
-1574609.01
````
bash
tackler \
--input.git.repo tackler-ng/suite/audit/audit-repo.git \
--input.git.dir txns \
--input.git.ref txns-1E5 \
--reports balance \
--accounts '^a:.*' \
--audit.mode true \
--api-filter-def '{"txnFilter":{"TxnFilterPostingAccount":{"regex":"^a:ay2016:am12"}}}'
The transaction filter definition could be given also as Base64 ascii armored string:
--api-filter-def base64:eyJ0eG5GaWx0ZXIiOnsiVHhuRmlsdGVyUG9zdGluZ0FjY291bnQiOnsicmVnZXgiOiJeYTpheTIwMTY6YW0xMiJ9fX0=
```` Git Storage commit : cb56fdcdd2b56d41fc08cc5af4a3b410896f03b5 reference : txns-1E5 directory : txns suffix : txn message : txns-1E5: 2016/12
Txn Set Checksum SHA-256 : 51faa6d2133d22d3ff8b60aff57722d1869fc4677911b13161dce558e7498073 Set size : 8406
Filter: Posting Account: "^a:ay2016:am12$"
0.00 -133433.00 a:ay2016
-133433.00
````