# NIH-plug: bundler and other utilities

This is NIH-plug's `cargo xtask` command, but as a library. This way you can use
it in your own projects without forking this repo or copying the binary into
your own repo. This is necessary until Cargo supports [running binaries from
dependencies directly](https://github.com/rust-lang/rfcs/pull/3168).

To use this, add an `xtask` binary to your project using `cargo new --bin xtask`
and add it to the Cargo workspace in your repository's main `Cargo.toml` file:

```toml
# Cargo.toml

[workspace]
members = ["xtask"]
```

Then add `nih_plug_xtask` to your new xtask package's dependencies:

```toml
# xtask/Cargo.toml

[dependencies]
nih_plug_xtask = { git = "https://github.com/robbert-vdh/nih-plug" }
```

Call `nih_plug_xtask`'s main function own xtask binary:

```rust
# xtask/src/main.rs

fn main() -> nih_plug_xtask::Result<()> {
    nih_plug_xtask::main()
}
```

And finally create a `.cargo/config` file in your repository and add a Cargo
alias so you can invoke the binary with `cargo xtask`:

```toml
# .cargo/config

[alias]
xtask = "run --package xtask --release --"
```