use std::time::Duration;
pub fn show_usage() {
println!("usage: bssh [-46AqtTvx] [-C cluster] [-F ssh_configfile] [-H hosts]");
println!(" [-i identity_file] [-J destination] [-l login_name]");
println!(" [-o option] [-p port] [--config config] [--parallel N]");
println!(" [--output-dir dir] [--timeout seconds] [--use-agent]");
println!(" destination [command [argument ...]]");
println!(" bssh [-Q query_option]");
println!(" bssh [list|ping|upload|download|interactive] ...");
println!();
println!("SSH Config Support:");
println!(" -F ssh_configfile Use alternative SSH configuration file");
println!(" Defaults to ~/.ssh/config if available");
println!(" Supports: Host, HostName, User, Port, IdentityFile,");
println!(" StrictHostKeyChecking, ProxyJump, and more");
println!();
println!("For more information, try 'bssh --help'");
}
pub fn format_duration(duration: Duration) -> String {
let total_seconds = duration.as_secs_f64();
if total_seconds < 1.0 {
format!("{:.1} ms", duration.as_secs_f64() * 1000.0)
} else if total_seconds < 60.0 {
format!("{total_seconds:.2} s")
} else {
let minutes = duration.as_secs() / 60;
let seconds = duration.as_secs() % 60;
let millis = duration.subsec_millis();
if seconds == 0 {
format!("{minutes}m")
} else if millis > 0 {
format!("{minutes}m {seconds}.{millis:03}s")
} else {
format!("{minutes}m {seconds}s")
}
}
}