wrapcli 0.2.7

Wrap and rewrite CLI output to masquerade as another tool
Documentation
# Getting Started

## Installation

Add `wrapcli` to your `Cargo.toml`:

```shell
cargo add wrapcli
```

Or add it manually:

```toml
[dependencies]
wrapcli = "0.1"
```

## Basic Usage

```rust
use wrapcli::{run_streaming, WrapConfig};

fn main() -> std::io::Result<()> {
    let cfg = WrapConfig {
        orig_name: "rustc".into(),
        fake_name: "dustc".into(),
        fake_ver: "2.0.0".into(),
        save_orig: true,
    };

    let args: Vec<String> = std::env::args().skip(1).collect();
    let status = run_streaming(&cfg, args)?;
    std::process::exit(status.code().unwrap_or(1));
}
```

## How It Works

When the wrapped tool outputs a line containing the original name, `wrapcli` intercepts it and applies rewriting rules:

1. The **first occurrence** of the original tool's name and version is replaced with the fake name and fake version. If `save_orig` is `true`, the original version is appended in parentheses.
2. Any **subsequent occurrences** of the original name in usage lines are replaced with the fake name.

This ensures consistent output masking without breaking the tool's functionality.