1 use bcachefs_mount::Cli;
2 use bch_bindgen::{error, info};
7 let opt = Cli::parse();
8 bch_bindgen::log::set_verbose_level(opt.verbose + bch_bindgen::log::ERROR);
9 colored::control::set_override(opt.colorize);
10 if let Err(e) = crate::main_inner(opt) {
11 error!("Fatal error: {}", e);
15 pub fn main_inner(opt: Cli) -> anyhow::Result<()> {
16 use bcachefs_mount::{filesystem, key};
18 libc::setvbuf(filesystem::stdout, std::ptr::null_mut(), libc::_IONBF, 0);
19 // libc::fflush(filesystem::stdout);
22 let fss = filesystem::probe_filesystems()?;
25 .ok_or_else(|| anyhow::anyhow!("filesystem was not found"))?;
27 info!("found filesystem {}", fs);
32 .ok_or_else(|| anyhow::anyhow!("no keyoption specified for locked filesystem"))?;
34 key::prepare_key(&fs, key)?;
39 .ok_or_else(|| anyhow::anyhow!("mountpoint option was not specified"))?;
41 fs.mount(&mountpoint, &opt.options)?;
48 // use insta::assert_debug_snapshot;
50 // fn snapshot_testing() {
51 // insta::assert_debug_snapshot!();