From 065eb2356affe9fe709932e5b143ca9f705b041c Mon Sep 17 00:00:00 2001 From: DecDuck Date: Sun, 1 Jun 2025 19:53:24 +1000 Subject: [PATCH] fix: database corrupted on every startup (#40) --- src-tauri/src/cloud_saves/resolver.rs | 17 ++++++++++++----- src-tauri/src/database/db.rs | 3 ++- src-tauri/src/database/models.rs | 1 + 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src-tauri/src/cloud_saves/resolver.rs b/src-tauri/src/cloud_saves/resolver.rs index 64f3789..c78fc36 100644 --- a/src-tauri/src/cloud_saves/resolver.rs +++ b/src-tauri/src/cloud_saves/resolver.rs @@ -1,7 +1,9 @@ use std::{ fs::{self, create_dir_all, File}, io::{self, ErrorKind, Read, Write}, - path::{Path, PathBuf}, thread::sleep, time::Duration, + path::{Path, PathBuf}, + thread::sleep, + time::Duration, }; use super::{ @@ -60,7 +62,6 @@ pub fn resolve(meta: &mut CloudSaveMetadata) -> File { file.id = Some(id); } let binding = serde_json::to_string(meta).unwrap(); - println!("Binding: {}", &binding); let serialized = binding.as_bytes(); let mut file = tempfile().unwrap(); file.write(serialized).unwrap(); @@ -117,8 +118,10 @@ pub fn extract(file: PathBuf) -> Result<(), BackupError> { let new_path = parse_path(file.path.into(), handler, &manifest.game_version)?; create_dir_all(&new_path.parent().unwrap()).unwrap(); - println!("Current path {:?} copying to {:?}", ¤t_path, &new_path); - + println!( + "Current path {:?} copying to {:?}", + ¤t_path, &new_path + ); copy_item(current_path, new_path).unwrap(); } @@ -168,7 +171,11 @@ fn copy_dir_recursive(src: &Path, dest: &Path) -> io::Result<()> { let metadata = entry.metadata()?; if metadata.is_file() { - debug!("Writing file {} to {}", entry_path.display(), dest_entry_path.display()); + debug!( + "Writing file {} to {}", + entry_path.display(), + dest_entry_path.display() + ); fs::copy(&entry_path, &dest_entry_path)?; } else if metadata.is_dir() { copy_dir_recursive(&entry_path, &dest_entry_path)?; diff --git a/src-tauri/src/database/db.rs b/src-tauri/src/database/db.rs index d305e56..3b54c69 100644 --- a/src-tauri/src/database/db.rs +++ b/src-tauri/src/database/db.rs @@ -5,7 +5,7 @@ use std::{ }; use chrono::Utc; -use log::{debug, error, info}; +use log::{debug, error, info, warn}; use rustbreak::{DeSerError, DeSerializer, PathDatabase, RustbreakError}; use serde::{de::DeserializeOwned, Serialize}; use url::Url; @@ -99,6 +99,7 @@ fn handle_invalid_database( games_base_dir: PathBuf, cache_dir: PathBuf, ) -> rustbreak::Database { + warn!("{}", _e); let new_path = { let time = Utc::now().timestamp(); let mut base = db_path.clone(); diff --git a/src-tauri/src/database/models.rs b/src-tauri/src/database/models.rs index fd17c8a..273e25d 100644 --- a/src-tauri/src/database/models.rs +++ b/src-tauri/src/database/models.rs @@ -176,6 +176,7 @@ pub mod data { pub auth: Option, pub base_url: String, pub applications: DatabaseApplications, + #[serde(skip)] pub prev_database: Option, pub cache_dir: PathBuf, pub compat_info: Option,