aboutsummaryrefslogtreecommitdiff
path: root/lockchain-files/src/fs
diff options
context:
space:
mode:
Diffstat (limited to 'lockchain-files/src/fs')
-rw-r--r--lockchain-files/src/fs/mod.rs15
-rw-r--r--lockchain-files/src/fs/primitive.rs9
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);