pub fn human_size(size_b: u64) -> String {
let units = ["B", "KiB", "MiB", "GiB", "TiB", "PiB"];
let mut f = size_b as f64;
for (i, unit) in units.iter().enumerate() {
if f < 1024.0 || i == units.len() - 1 {
return format!("{f:.1} {unit}");
}
f /= 1024.0;
}
format!("{f:.1} PiB")
}
pub fn which_exists(cmd: &str) -> bool {
std::process::Command::new("sh")
.args(["-c", &format!("command -v {cmd}")])
.stdout(std::process::Stdio::null())
.stderr(std::process::Stdio::null())
.status()
.is_ok_and(|s| s.success())
}