Wrap a CLI tool and rewrite its output to masquerade as another tool.
Add to your project:
cargo add wrapcliThen use it:
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));
}Full documentation is available in the WrapCLI Book.
MIT OR Apache-2.0
Made with ❤️ for the Rust community