use std::sync::Arc;
use harness::{Claude, Harness, HarnessError, InstallEvent};
fn main() -> Result<(), HarnessError> {
let claude = Claude::new();
let r = claude.readiness();
if !r.installed {
if let Some(hint) = claude.info().install_hint {
eprintln!("Claude Code isn't installed. Get it from {}", hint.url);
if let Some(command) = hint.command {
eprintln!(" {command}");
}
}
return Ok(());
}
if !r.auth_configured {
let log: harness::InstallCallback = Arc::new(|ev| match ev {
InstallEvent::Step { text } => eprintln!("• {text}"),
InstallEvent::Stdout { text } | InstallEvent::Stderr { text } => eprintln!(" {text}"),
InstallEvent::Done { ok, .. } => eprintln!("done (ok={ok})"),
});
claude.login(log)?; }
println!("ready: {}", claude.readiness().ready);
Ok(())
}