diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..babac6a --- /dev/null +++ b/src/main.rs @@ -0,0 +1,50 @@ +extern crate fuse; +extern crate libc; +extern crate v1; + +use v1::data::get_data1; +use v1::data::SimpleFsData; +use fuse::{Filesystem, Request, ReplyEntry, ReplyAttr, ReplyDirectory, ReplyData}; +use libc::ENOENT; +use std::ffi::OsStr; + +struct MemFs { + data: SimpleFsData, +} + +impl Filesystem for MemFs { + fn lookup(&mut self, _req: &Request, _parent: u64, _name: &OsStr, + reply: ReplyEntry) { + reply.error(ENOENT); + } + + fn getattr(&mut self, _req: &Request, _ino: u64, reply: ReplyAttr) { + reply.error(ENOENT); + } + + fn read(&mut self, _req: &Request, _ino: u64, _fh: u64, _offset: u64, + _size: u32, reply: ReplyData) { + reply.error(ENOENT); + } + fn readdir (&mut self, _req: &Request, ino: u64, _fh: u64, offset: u64, + reply: ReplyDirectory) { + reply.error(ENOENT); + } +} + +fn usage() { + println!("{} <mountpoint>", std::env::args().nth(0).unwrap()); +} + +fn mount(mountpoint: &OsStr) { + let fs = MemFs { data: get_data1() }; + fuse::mount(fs, &mountpoint, &[]).unwrap() +} + +fn main() { + println!("{:?}", get_data1()); + match std::env::args_os().nth(1) { + Some(mountpoint) => mount(&mountpoint), + None => usage(), + } +} |