added fat-mount
This commit is contained in:
parent
833fb71108
commit
d20fe4cf2d
3 changed files with 39 additions and 4 deletions
4
Cargo.lock
generated
4
Cargo.lock
generated
|
|
@ -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
10
fat-mount/Cargo.toml
Normal 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
29
fat-mount/src/main.rs
Normal 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(())
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue