use std::path::PathBuf;
use std::process::Command;
fn locate_mnem() -> PathBuf {
let ext = if cfg!(windows) { ".exe" } else { "" };
let exe = std::env::current_exe().expect("current_exe");
exe.parent()
.expect("examples/ parent")
.parent()
.expect("debug/ parent")
.join(format!("mnem{ext}"))
}
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mnem = locate_mnem();
if !mnem.exists() {
eprintln!(
"error: {} not found. Run `cargo build -p mnem-cli` before this example.",
mnem.display()
);
std::process::exit(1);
}
println!("locating mnem at: {}", mnem.display());
let output = Command::new(&mnem).arg("--help").output()?;
if !output.status.success() {
eprintln!(
"mnem --help failed: {}",
String::from_utf8_lossy(&output.stderr)
);
std::process::exit(1);
}
let help = String::from_utf8_lossy(&output.stdout);
println!("---- mnem --help (first 6 lines) ----");
for line in help.lines().take(6) {
println!("{line}");
}
println!("---- ...");
println!("OK");
Ok(())
}