How CashUtil relates to GnuCash
Sharing the GnuCash financial logic
There has been a long-standing need for a command-line interface to GnuCash data. Originally, CashUtil was built as a test-routine for QOF but it became increasingly obvious that the existing GnuCash source code could support a GUI and a CLI, each installable with or without the other.
Unfortunately, it proved impossible to fold cashutil into the gnucash monolith so CashUtil is now a SourceForge project that uses source code from the gnucash tree.
- QOF provides the engine but has no financial logic (which makes it ideal for it's use in other projects like PilotQOF).
- QOF also provides QSF to share data with other projects using XML, including PilotQOF.
- QOF-generator provides a command line interface, interactive shell and shell scripting mode.
- CashUtil is linked against the GnuCash source to provide the financial objects and ancillary logic.
- CashUtil will also be linked against the GnuCash v2 XML backend
This small test routine has the potential to become a significant project with substantial benefits to GnuCash users.
Additionally, the CLI - including the QOF interactive shell - can be easily added to any set of QOF objects to produce another CLI application to handle any kind of user data. As it develops, the CLI and shell will be folded into PilotQOF and QOFgen to make it even easier to build your own CLI for your own data with easy access to data from other QOF projects.
Note also that the DWI project could allow the rapid development of GUI projects based on QOF and able to share and process data from QOF projects.
| File | GnuCash engine | Business |
|---|---|---|
| Account.c | src/engine/ | |
| Account.h | src/engine/ | |
| AccountP.h | src/engine/ | |
| cap-gains.c | src/engine/ | |
| cap-gains.h | src/engine/ | |
| FreqSpec.c | src/engine/ | |
| FreqSpec.h | src/engine/ | |
| FreqSpecP.h | src/engine/ | |
| gncAddress.c | business-core | |
| gncAddress.h | business-core | |
| gncAddressP.h | business-core | |
| gncBillTerm.c | business-core | |
| gncBillTerm.h | business-core | |
| gncBillTermP.h | business-core | |
| gnc-commodity.c | src/engine/ | |
| gnc-commodity.h | src/engine/ | |
| gncCustomer.c | business-core | |
| gncCustomer.h | business-core | |
| gncCustomerP.h | business-core | |
| gncEmployee.c | business-core | |
| gncEmployee.h | business-core | |
| gncEmployeeP.h | business-core | |
| gnc-engine.h | src/engine/ | |
| gncEntry.c | business-core | |
| gncEntry.h | business-core | |
| gncEntryP.h | business-core | |
| gnc-filepath-utils.c | src/engine/ | |
| gnc-filepath-utils.h | src/engine/ | |
| gncInvoice.c | business-core | |
| gncInvoice.h | business-core | |
| gncInvoiceP.h | business-core | |
| gncJob.c | business-core | |
| gncJob.h | business-core | |
| gncJobP.h | business-core | |
| gnc-lot.c | src/engine/ | |
| gnc-lot.h | src/engine/ | |
| gnc-lot-p.h | src/engine/ | |
| gncOrder.c | business-core | |
| gncOrder.h | business-core | |
| gncOrderP.h | business-core | |
| gncOwner.c | business-core | |
| gncOwner.h | business-core | |
| gncOwnerP.h | business-core | |
| gnc-pricedb.c | src/engine/ | |
| gnc-pricedb.h | src/engine/ | |
| gnc-pricedb-p.h | src/engine/ | |
| gncTaxTable.c | business-core | |
| gncTaxTable.h | business-core | |
| gncTaxTableP.h | business-core | |
| gncVendor.c | business-core | |
| gncVendor.h | business-core | |
| gncVendorP.h | business-core | |
| Group.c | src/engine/ | |
| Group.h | src/engine/ | |
| GroupP.h | src/engine/ | |
| iso-4217-currencies.c | src/engine/ | |
| messages.c | src/engine | |
| messages.h | src/engine | |
| policy.c | src/engine/ | |
| policy.h | src/engine/ | |
| policy-p.h | src/engine/ | |
| Query.c | src/engine/ | |
| QueryCore.h | src/engine/ | |
| Query.h | src/engine/ | |
| QueryNew.h | src/engine/ | |
| QueryObject.h | src/engine/ | |
| QueryP.h | src/engine/ | |
| SchedXaction.c | src/engine/ | |
| SchedXaction.h | src/engine/ | |
| SchedXactionP.h | src/engine/ | |
| Scrub2.c | src/engine/ | |
| Scrub2.h | src/engine/ | |
| Scrub3.c | src/engine/ | |
| Scrub3.h | src/engine/ | |
| Scrub.c | src/engine/ | |
| Scrub.h | src/engine/ | |
| ScrubP.h | src/engine/ | |
| SX-book.c | src/engine/ | |
| SX-book.h | src/engine/ | |
| SX-book-p.h | src/engine/ | |
| SX-ttinfo.c | src/engine/ | |
| SX-ttinfo.h | src/engine/ | |
| Transaction.c | src/engine/ | |
| Transaction.h | src/engine/ | |
| TransactionP.h | src/engine/ | |
| TransLog.c | src/engine/ | |
| TransLog.h | src/engine/ |
General Information