use linux_info::storage::{MountPoint, MountPoints};
fn main() {
let mt = MountPoints::read().expect("could not read /proc/self/mountinfo");
println!(
"{:<15} {:>10} {:>10} {:>10} {}",
"Filesystem", "Size", "Used", "Avail", "Mounted on"
);
for point in mt.points() {
let _ = print_point(point);
}
}
fn print_point(point: MountPoint) -> Option<()> {
let stat = point.stats().ok()?;
if !stat.has_blocks() {
return None;
}
println!(
"{:<15} {:>10} {:>10} {:>10} {}",
point.mount_source()?,
format!("{:.1}", stat.total()?),
format!("{:.1}", stat.available()?),
format!("{:.1}", stat.used()?),
point.mount_point()?
);
Some(())
}