# Breath
A Rust tool for streamlining the process of committing code to Git and Mercurial repositories.
[](https://www.gnu.org/licenses/agpl-3.0)
[](https://crates.io/crates/breath)
A command-line tool for streamlining the process of committing Rust code to Git and Mercurial repositories. It automates
checks like
formatting, tests, documentation, dependency audit and provides interactive commit message creation.
## Features
- Interactive commit message creation with a conventional commit format
- Pre-commit checks:
- Code compilation check using `cargo check`
- Code formatting verification with `cargo fmt`
- Test suite execution via `cargo test`
- Lint checks using `cargo clippy`
- Documentation generation with `cargo doc`
- Dependencies audit through `cargo audit`
- User-friendly terminal interface with progress indicators
- Version control workflow automation:
- Staged files preview
- Commit creation
- Optional push to remote
- Clean error reporting with logs stored in `.breathes` directory
- Support for multiple version control systems:
- Git support via `--features git`
- Mercurial support via `--features hg`
- Default hooks run with default features
## Installation
### Git support
```shell
cargo install breath --features git
```
### Mercurial support
```shell
cargo install breath --features hg
```
### Hooks support
```shell
cargo install breath
```
## Usage
### Interactive commit message creation
```shell
breath
```
### pre-commit hook
```sh
#!/bin/sh
## Coming soon
* Support for other version control systems
Best regards [hackia](https://github.com/hackia)