mod fmt_mount;
mod json;
use argh::FromArgs;
#[derive(FromArgs)]
struct Args {
#[argh(switch, short='v')]
version: bool,
#[argh(switch, short='a')]
all: bool,
#[argh(switch, short='j')]
json: bool,
}
fn main() -> lfs_core::Result<()> {
let args:Args = argh::from_env();
if args.version {
println!("lfs {}", env!("CARGO_PKG_VERSION"));
return Ok(());
}
let mut mounts = lfs_core::read_mounts()?;
if !args.all {
mounts.retain(|m|
m.disk.is_some()
&& m.info.fs_type != "squashfs" );
}
if args.json {
println!("{}", serde_json::to_string_pretty(&json::output_value(&mounts)).unwrap());
return Ok(());
}
if mounts.is_empty() {
println!("no disk was found - try\n lfs -a");
Ok(())
} else {
mounts.sort_by_key(|m| u64::MAX-m.size());
fmt_mount::print(&mounts)
}
}