rbonsai 0.1.5

A terminal bonsai tree generator
Documentation
# rbonsai

This is a port of `cbonsai` to rust. Check out the original
[here](https://gitlab.com/jallbrit/cbonsai)

`rbonsai` is a bonsai tree generator, written in Rust using crossterm. It creates
an ascii bonsai tree that is colored using your terminals color scheme. It is
also configurable via CLI arguments - see [usage](#usage). It can print a static
tree to your terminal, or you can watch it grow live. There is also a screensaver
mode to repeatedly grow trees!

## Installation

`rbonsai` is available on crates.io. To install with Cargo:

```bash
cargo install rbonsai --locked
```

## Usage

```
Usage: rbonsai [OPTIONS]

Options:
  -l, --live                     Whether the tree generation should pause after each step to allow the user to watch it grow
  -t, --time <TIME>              In live mode, wait time in seconds between each step of growth [default: 0.03]
  -i, --infinite                 Infinite mode: keep growing trees
  -w, --wait <WAIT>              In infinite mode, the wait time in seconds between each tree [default: 4]
  -S, --screensaver              Screensaver mode: equivalent to -li and quit on any keypress
  -m, --message <MESSAGE>        Attach message next to tree
  -b, --base <BASE>              Ascii art plant base to use [default: 1]
  -M, --multiplier <MULTIPLIER>  The branch multiplier; higher -> less branches [default: 3]
  -L, --life <LIFE>              The starting life of the tree higher -> bigger tree [default: 32]
  -p, --print                    Print tree to terminal when finished
  -s, --seed <SEED>              Random number seed for reproducable trees
  -v, --verbose                  Whether there should be debug prints
  -h, --help                     Print help
  -V, --version                  Print version
```

## Add to `.bashrc`

For a new bonsai tree every time you open a terminal, add the following to the
end of your ~/.bashrc:

```bash
rbonsai -p
```

## Missing Features

`rbonsai` does not have support for loading or saving to a file as of yet. It
also does not have support for providing your of leave characters.

## Why Write This?

I had some issues installing cbonsai on one of my machines. I thought it was a
cool algorithm and wrote this to learn more about it. Additionally, I wanted to
use Crossterm for something to learn more about how it works. I also have plans 
for some newer features that I will add as soon as I complete the port of the 
original.

## Credits

This project is a port of [`cbonsai`](https://gitlab.com/jallbrit/cbonsai) into
Rust. Check it out if you want some of the missing features or would rather use
the original.