world_replace_bundle/
world_replace_bundle.rs1use brdb::{BrFsReader, Brdb, IntoReader, pending::BrPendingFs};
2use std::path::PathBuf;
3
4fn main() -> Result<(), Box<dyn std::error::Error>> {
7 let meta_dst = PathBuf::from("dst.brdb");
8 let meta_src = PathBuf::from("src.brdb");
9
10 let src_f = Brdb::open(meta_src)?.into_reader();
11 let dst_f = Brdb::open(meta_dst)?.into_reader();
12
13 println!(
14 "replacing: {}",
15 String::from_utf8(dst_f.read_file("Meta/Bundle.json")?).unwrap()
16 );
17 println!(
18 "with: {}",
19 String::from_utf8(src_f.read_file("Meta/Bundle.json")?).unwrap()
20 );
21
22 let patch = BrPendingFs::Root(vec![(
23 "Meta".to_owned(),
24 BrPendingFs::Folder(Some(vec![(
25 "Bundle.json".to_string(),
26 BrPendingFs::File(Some(src_f.read_file("Meta/Bundle.json")?)),
27 )])),
28 )]);
29
30 dst_f.write_pending(
31 "Replace Bundle",
32 dst_f.to_pending_patch()?.with_patch(patch)?,
33 )?;
34
35 Ok(())
36}