denim 0.2.0

Denim is an alternative way to make and run Rust "scripts" with focus on minimal runtime overhead and ease of script development.
[![Latest Version]][crates.io] [![Documentation]][docs.rs] ![License]

Denim is an alternative way to make and run Rust "scripts" with focus on minimal runtime overhead and ease of script development.

# Features

* Full real-time output of `cargo` command runs.
* Support for `Cargo.toml` definitions within script source.
* Sensible script templates.
* Very low execution overhead after script was built.
* `#!` support.
* Create, build and tests scripts without interrupting existing script callers.

# Non-goals

* Run inline scripts - use `cargo script(er)` for this.
* Non-Linux support.

# Installation

You will need Rust installed (tested with 1.64.0).

```sh
cargo install denim
```

# Examples

Crate new minimal script and build it.

```sh
denim new --bare hello_world
```

Crate new [cotton](https://github.com/jpastuszek/cotton) prelude script and build it (this will take a moment).

```sh
denim new hello_world
```

Now you can run the script as any other binary.
Note that you can also run the script without building it first - the build will be done silently before program is executed.

```sh
./hello_world
```

After making changes to script it needs to be rebuild for them to take effect.
Executing script directly (e.g. `./hello_world`) will execute last built version until changed script builds successfully.

```sh
denim build hello_world
```

Rebuild and run script after making changes.

```sh
denim run hello_world
```

Run tests.

```sh
denim test hello_world
```

Check script.

```sh
denim check hello_world
```

[crates.io]: https://crates.io/crates/denim
[Latest Version]: https://img.shields.io/crates/v/denim.svg
[Documentation]: https://docs.rs/denim/badge.svg
[docs.rs]: https://docs.rs/denim
[License]: https://img.shields.io/crates/l/denim.svg