added fat-mount

This commit is contained in:
Moritz Gmeiner 2025-07-30 21:53:18 +02:00
commit d20fe4cf2d
3 changed files with 39 additions and 4 deletions

4
Cargo.lock generated
View file

@ -150,10 +150,6 @@ dependencies = [
"thiserror", "thiserror",
] ]
[[package]]
name = "fat-mount"
version = "0.1.0"
[[package]] [[package]]
name = "fuser" name = "fuser"
version = "0.15.1" version = "0.15.1"

10
fat-mount/Cargo.toml Normal file
View file

@ -0,0 +1,10 @@
[package]
name = "fat-mount"
version = "0.1.0"
edition = "2024"
[dependencies]
anyhow = "1.0.98"
env_logger = "0.11.8"
fat-fuse = { version = "0.1.0", path = "../fat-fuse" }
fuser = "0.15.1"

29
fat-mount/src/main.rs Normal file
View file

@ -0,0 +1,29 @@
use std::cell::RefCell;
use std::fs::File;
use std::rc::Rc;
use fat_fuse::FatFuse;
use fuser::MountOption;
fn main() -> anyhow::Result<()> {
env_logger::init();
let mut args = std::env::args();
let path = args.next().ok_or(anyhow::anyhow!("missing fs path"))?;
let mountpoint = args.next().ok_or(anyhow::anyhow!("missing mount point"))?;
let file = File::open(path)?;
let fat_fuse = FatFuse::new(Rc::new(RefCell::new(file)))?;
let options = vec![
MountOption::RO,
MountOption::FSName("fat-fuse".to_owned()),
MountOption::AutoUnmount,
];
fuser::mount2(fat_fuse, mountpoint, &options).unwrap();
Ok(())
}