use sail::Client;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut args = std::env::args().skip(1);
let usage = "usage: exec <sailbox_id> <command> [args...]";
let sailbox_id = args.next().ok_or(usage)?;
let command: Vec<String> = args.collect();
if command.is_empty() {
return Err(usage.into());
}
let client = Client::from_env()?;
let result = client
.sailbox(sailbox_id)
.run(command, sail::RunOptions::default())
.await?;
print!("{}", result.stdout);
eprint!("{}", result.stderr);
if result.exit_code != 0 {
eprintln!("command exited with code {}", result.exit_code);
}
Ok(())
}