# basti
basti is a simple tool to group and interpret your bank account statements.
It parses the **SWIFT MT940** format so that you are good to go if your banking account is able to export bank
statements in the format of that standard.
You can give basti a mapping configuration how the statements should be interpreted and just use the results for further
processing and analysis.
## Install
You can install the binary with cargo getting a fresh build:
cargo install basti
With default settings it will be installed to `~/.cargo/bin/`.
## Usage
todo
## Roadmap
* packaging for archlinux with [cargo-aur](https://crates.io/crates/cargo-aur)
## Development
Run locally
cargo run -- <action> <options...>
Set log level with environment variable **RUST_LOG**. For example to run with logs on debug level:
env RUST_LOG=debug cargo run -- <action> <options...>
### Deployment
After you have generated a token on [crates.io](https://crates.io/) you can publish with cargo
cargo publish
### used crates
* [anyhow](https://crates.io/crates/anyhow) - error handling
* [assert_cmd](https://crates.io/crates/assert_cmd) - integration testing for cli
* [assert_fs](https://crates.io/crates/assert_fs) - filesystem fixtures and assertions for testing
* [clap](https://crates.io/crates/clap) - CLI argument parser
* [env_logger](https://crates.io/crates/env_logger) - logger that can be configured by env variable
* [indicatif](https://crates.io/crates/indicatif) - progress bars and spinners
* [log](https://crates.io/crates/log) - logging
* [mt940-rs](https://crates.io/crates/mt940) - mt940 parser
* [predicates](https://crates.io/crates/predicates) - boolean-valued predicate functions
candidates
* [ansi_term](https://crates.io/crates/ansi_term) - formatting and colorize on ANSI terminals
* [clap-verbosity-flag](https://crates.io/crates/clap-verbosity-flag) - add verbose options to clap
* [cargo-fuzz](https://crates.io/crates/cargo-fuzz) - fuzzer
* [proptest](https://crates.io/crates/proptest) - property testing framework
helpful tools
* [cargo-tree](https://crates.io/crates/cargo-tree) - visualizes a crate's dependency tree
* [cargo-outdated](https://crates.io/crates/cargo-outdated) - display dependencies that are out of date