rona 0.1.0

A simple CLI tool to help you with your git workflow.
Documentation
# 🔌 Rona

<h1 align="center">
    A simple CLI tool to help you with your git workflow.
</h1>

<p align="center">
  <a href="https://crates.io/crates/rona"><img src="https://img.shields.io/crates/v/rona.svg" alt="Crates.io Version"></a>
  <a href="https://docs.rs/rona"><img src="https://img.shields.io/docsrs/rona/latest" alt="Documentation"></a>
  <a href="https://github.com/TomPlanche/rona/blob/main/LICENSE"><img src="https://img.shields.io/crates/l/rona" alt="License"></a>
  <a href="https://github.com/TomPlanche/rona/actions/workflows/rust.yaml"><img src="https://github.com/TomPlanche/rona/actions/workflows/rust.yaml/badge.svg" alt="Build Status"></a>
</p>

## TODO:
- [ ] Add support for `git add` with exclude patterns.
- [ ] Add `commit_message.md` generation from git staged changes.
- [ ] Add support for `git commit` with custom message from the `commit_message.md` file.
- [ ] Add support for `git push` with passed arguments.

## Usage

### `add-exclude`

This command adds all files to the git add command and excludes the files that match the passed patterns.

Example:
```bash
rona add-exclude <pattern(s)>
# or
rona -a <pattern(s)>
```

Where `<pattern(s)>` are the patterns to exclude.

> [!CAUTION]
> The subtility of the patterns is that some terminals match the wildcard themselves.


Let's say you have this `git status --porcelain` output:

```
    M Cargo.lock
    M Cargo.toml
    M src/main.rs
?? LICENCE-APACHE
?? LICENCE-MIT
?? README.md
?? src/cli.rs
?? src/git_related.rs
?? src/lib.rs
?? src/utils.rs
```

For excluding all Rust files, you can use the pattern `*.rs`.

```bash
rona add-exclude "*.rs" # with quotes
# or use with wildcards
rona add-exclude **/*.rs # *.rs will not match any file and crash depending on the terminal, not my script's fault.
```

This will result in the following `git status --porcelain` output:

```
M  Cargo.lock
M  Cargo.toml
A  LICENCE-APACHE
A  LICENCE-MIT
A  README.md
    M src/main.rs
?? src/cli.rs
?? src/git_related.rs
?? src/lib.rs
?? src/utils.rs
```