diff --git a/src-tauri/src/utils/init.rs b/src-tauri/src/utils/init.rs index 8c7082b..943e33c 100644 --- a/src-tauri/src/utils/init.rs +++ b/src-tauri/src/utils/init.rs @@ -191,11 +191,15 @@ pub fn init_config() -> Result<()> { /// after tauri setup pub fn init_resources() -> Result<()> { let app_dir = dirs::app_home_dir()?; + let test_dir = app_dir.join("test"); let res_dir = dirs::app_resources_dir()?; if !app_dir.exists() { let _ = fs::create_dir_all(&app_dir); } + if !test_dir.exists() { + let _ = fs::create_dir_all(&test_dir); + } if !res_dir.exists() { let _ = fs::create_dir_all(&res_dir); } @@ -210,9 +214,10 @@ pub fn init_resources() -> Result<()> { for file in file_list.iter() { let src_path = res_dir.join(file); let dest_path = app_dir.join(file); + let test_dest_path = test_dir.join(file); - let handle_copy = || { - match fs::copy(&src_path, &dest_path) { + let handle_copy = |dest: &PathBuf| { + match fs::copy(&src_path, dest) { Ok(_) => log::debug!(target: "app", "resources copied '{file}'"), Err(err) => { log::error!(target: "app", "failed to copy resources '{file}', {err}") @@ -220,8 +225,11 @@ pub fn init_resources() -> Result<()> { }; }; + if src_path.exists() && !test_dest_path.exists() { + handle_copy(&test_dest_path); + } if src_path.exists() && !dest_path.exists() { - handle_copy(); + handle_copy(&dest_path); continue; } @@ -231,14 +239,14 @@ pub fn init_resources() -> Result<()> { match (src_modified, dest_modified) { (Ok(src_modified), Ok(dest_modified)) => { if src_modified > dest_modified { - handle_copy(); + handle_copy(&dest_path); } else { log::debug!(target: "app", "skipping resource copy '{file}'"); } } _ => { log::debug!(target: "app", "failed to get modified '{file}'"); - handle_copy(); + handle_copy(&dest_path); } }; }