Skip to content

rene00/gt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

gt

gt is a command line tool that performs convenient actions on a gnucash sqlite3 database.

warning: gt can destroy your gnucash sqlite3 database

gt is not associated with the gnucash project in anyway. There is no guarantee that any action performed by gt will not corrupt, destroy or modify in an unexpected way a gnucash sqlite3 database. If you choose to use gt, please backup your gnucash sqlite3 database before doing so.

Why?

I had completed a migration of transactions into gnucash and needed a way to bulk edit many transactions. At the time, there was no support for bulk editing transactions within gnucash. There are libraries that provide access to the gnucash sqlite3 database though I had written enough code that worked on the gnucash sqlite3 database to be comfortable in writing my own tool.

How?

Build:

$ go build -o ./gt ./cmd/gt/main.go

The gt config file defaults to ~/.gt.json which supports these options:

{
    "gnucash_db_file": "/home/user/.gnucash.sql.gnucash"
}

List accounts:

$ gt account list

List accounts that have Groceries in their name:

$ gt account list --name-like "Groceries"

Get an account by guid:

$ gt account get 9b1d2bc513da4076b236aee6114b21a7

Get an account by account tree:

$ gt account get expenses:groceries

List transactions:

$ gt transaction list

List transactions for account guid:

$ gt transaction list --account 9b1d2bc513da4076b236aee6114b21a7

List transactions for account tree:

$ gt transaction list --account expenses:groceries

List transactions starting from a date with a description that contains %Pizza:

$ gt transaction list --start-post-date 2024-01-01 \
    --description-like "%Pizza"

Update a transaction account:

$ gt transaction update 0000000000000000fa1ce5381fec0d51 \
    --source-account expenses:pizza
    --destination-account expenses:dining

Update many transactions account based on their description:

$ gt transaction bulk-update \
    --description-like "%Pizza" \
    --source-account expenses:pizza \
    --destination-account expenses:dining

About

A gnucash command line tool

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages