diff options
Diffstat (limited to 'lockchain-files/src/fs')
-rw-r--r-- | lockchain-files/src/fs/mod.rs | 15 | ||||
-rw-r--r-- | lockchain-files/src/fs/primitive.rs | 9 |
2 files changed, 18 insertions, 6 deletions
diff --git a/lockchain-files/src/fs/mod.rs b/lockchain-files/src/fs/mod.rs index 7820925..9f2bfe2 100644 --- a/lockchain-files/src/fs/mod.rs +++ b/lockchain-files/src/fs/mod.rs @@ -9,21 +9,22 @@ //! which will return either `Ok(())` or the first error in the list //! of operations. -use lcc::traits::{Body, AutoEncoder}; +use lcc::traits::{AutoEncoder, Body}; use std::collections::HashMap; use std::error::Error; use std::io::{self, Write}; use std::{ - fs::{self, File, OpenOptions as OO}, + fs::{self, File, OpenOptions}, path::PathBuf, }; use utils::FileToString; use FileVault; -pub mod primitive; +mod primitive; use self::primitive::*; +use userstore::DiskMirror; #[derive(Debug)] pub struct Filesystem { @@ -87,8 +88,14 @@ impl Filesystem { pub fn sync_vault<T: Body>(&self, vault: &FileVault<T>) -> Result<(), io::Error> { vault.config.save(&self.root)?; + primitive::write_file( + FileType::Metadata, + &self.root, + "userstore", + vault.users.to_disk(), + )?; - unimplemented!() + Ok(()) } /// Respond to a sync request diff --git a/lockchain-files/src/fs/primitive.rs b/lockchain-files/src/fs/primitive.rs index d567a28..f97cd49 100644 --- a/lockchain-files/src/fs/primitive.rs +++ b/lockchain-files/src/fs/primitive.rs @@ -47,7 +47,12 @@ fn type_path(tt: FileType, root: &PathBuf) -> PathBuf { path } -pub(crate) fn write_file(tt: FileType, root: PathBuf, name: &str, contents: Vec<u8>) -> Result<()> { +pub(crate) fn write_file( + tt: FileType, + root: &PathBuf, + name: &str, + contents: Vec<u8>, +) -> Result<()> { let file_name = format!("{}.{}", name, file_ending!(&tt)); let mut path = type_path(tt, &root); path.push(file_name); @@ -58,7 +63,7 @@ pub(crate) fn write_file(tt: FileType, root: PathBuf, name: &str, contents: Vec< Ok(()) } -pub(crate) fn read_file(tt: FileType, root: PathBuf, name: &str) -> Result<Vec<u8>> { +pub(crate) fn read_file(tt: FileType, root: &PathBuf, name: &str) -> Result<Vec<u8>> { let file_name = format!("{}.{}", name, file_ending!(&tt)); let mut path = type_path(tt, &root); path.push(file_name); |