extern crate clap;
extern crate sys_mount;
use clap::{App, Arg};
use std::process::exit;
use sys_mount::{Mount, MountFlags, SupportedFilesystems};
fn main() {
let matches = App::new("mount")
.arg(Arg::with_name("source").required(true))
.arg(Arg::with_name("directory").required(true))
.get_matches();
let src = matches.value_of("source").unwrap();
let dir = matches.value_of("directory").unwrap();
let supported = match SupportedFilesystems::new() {
Ok(supported) => supported,
Err(why) => {
eprintln!("failed to get supported file systems: {}", why);
exit(1);
}
};
match Mount::new(src, dir, &supported, MountFlags::empty(), None) {
Ok(mount) => {
println!("mounted {} ({}) to {}", src, mount.get_fstype(), dir);
}
Err(why) => {
eprintln!("failed to mount {} to {}: {}", src, dir, why);
exit(1);
}
}
}