use std::path::Path;
use linkrs_core::StorageResult;
pub(crate) fn sync_tree(root: &Path) -> StorageResult<()> {
fn visit(directory: &Path) -> StorageResult<()> {
for item in std::fs::read_dir(directory)? {
let path = item?.path();
if path.is_dir() {
visit(&path)?;
} else if path.is_file() {
std::fs::File::open(path)?.sync_all()?;
}
}
sync_directory(directory)
}
visit(root)
}
pub(crate) fn sync_directory(directory: &Path) -> StorageResult<()> {
std::fs::File::open(directory)?.sync_all()?;
Ok(())
}