Skip to content

jrhawley/quill

Repository files navigation

Quill

Query all your bills and accounts to check on your financial statements. Check for statements that you've downloaded from your bank, service provider, or other company that issues regular statements.

TUI demo

Installation

On Windows, Linux, or macOS, install with Cargo.

cargo install --git https://github.com/jrhawley/quill.git

Usage

> quill -h
Query all your bills and accounts to check on your financial statements.

USAGE:
    quill [OPTIONS]

FLAGS:
    -h, --help       Prints help information
    -V, --version    Prints version information

OPTIONS:
    -c, --config <CONF>    The statement configuration file

How it works

See this blog post for details about the motivation and design implementation of Quill.

Features

Customized configuration

A configuration file will automatically be loaded from your user's application settings, if one exists. Quill uses the dirs crate to achieve this, which follows the expected conventions in each operating system.

Operating system Configuration location
macOS $HOME/Library/Application Support/quill/config.toml
Linux $HOME/.config/quill/config.toml
Windows C:\\Users\\<User>\\AppData\\Roaming\\quill\\config.toml

An example configuration file can be found in examples/.

Ignore statements

In the directory for an account whose statements you're checking, you can include a .quillignore.toml file with an array of dates and/or file names. Example ignore files can be found in examples/.

Development

Compilation

Quill is designed to work on Windows, macOS, and Linux operating systems. To compile binaries for each of these systems, we make use of cargo-make.

To build a release version, run:

# for the OS you're working on
cargo make build-release

# for a specific OS
cargo make build-release-windows
cargo make build-release-macos
cargo make build-release-linux

# for all OS's
cargo make build-release-all

To create a tag and a release on GitHub, we make use of the GitHub CLI.

# for the OS you're working on
cargo make release

# for a specific OS
cargo make release-windows
cargo make release-macos
cargo make release-linux

# for all OS's
cargo make release-all

Testing

We generally follow the testing ideas in The Rust Programming Language Book. To run tests quickly and concisely, we make use of cargo-nextest.

# run all tests
cargo nextest run