From 513f1a0c1694d430000b21658d022885b823ad42 Mon Sep 17 00:00:00 2001 From: Lncvrt Date: Tue, 17 Feb 2026 00:39:20 -0700 Subject: [PATCH] Replace all .unwrap() statements with proper code with Claude Code --- src-tauri/src/lib.rs | 118 ++++++++++++++++++++++--------------------- 1 file changed, 61 insertions(+), 57 deletions(-) diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index f6f4a47..d980a68 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -27,11 +27,10 @@ use std::os::unix::fs::PermissionsExt; #[allow(unused)] fn is_running_by_path(path: &Path) -> bool { let sys = System::new_all(); - let target = path.canonicalize().ok(); - if target.is_none() { - return false; - } - let target = target.unwrap(); + let target = match path.canonicalize() { + Ok(t) => t, + Err(_) => return false, + }; sys.processes().values().any(|proc| { proc.exe() .and_then(|exe| exe.canonicalize().ok()) @@ -95,12 +94,10 @@ async fn unzip_to_dir(zip_path: PathBuf, out_dir: PathBuf) -> String { #[tauri::command] fn folder_size(app: AppHandle, version: String) -> String { - let path = app - .path() - .app_local_data_dir() - .unwrap() - .join("game") - .join(&version); + let path = match app.path().app_local_data_dir() { + Ok(p) => p.join("game").join(&version), + Err(_) => return "-1".to_string(), + }; fn inner(path: &Path) -> u64 { let mut size = 0; if let Ok(entries) = fs::read_dir(path) { @@ -146,8 +143,14 @@ async fn download( let mut downloaded: u64 = 0; let mut stream = resp.bytes_stream(); - let downloads_path = app.path().app_local_data_dir().unwrap().join("downloads"); - let game_path = app.path().app_local_data_dir().unwrap().join("game"); + let downloads_path = match app.path().app_local_data_dir() { + Ok(p) => p.join("downloads"), + Err(_) => return "-1".to_string(), + }; + let game_path = match app.path().app_local_data_dir() { + Ok(p) => p.join("game"), + Err(_) => return "-1".to_string(), + }; let download_part_path = downloads_path.join(format!("{}.part", name)); let download_zip_path = downloads_path.join(format!("{}.zip", name)); @@ -161,9 +164,10 @@ async fn download( let _ = tokio::fs::remove_dir_all(&game_path.join(name.clone())).await; } let _ = tokio::fs::create_dir_all(&game_path.join(&name)).await; - let mut file = tokio::fs::File::create(download_part_path.clone()) - .await - .unwrap(); + let mut file = match tokio::fs::File::create(download_part_path.clone()).await { + Ok(f) => f, + Err(_) => return "-1".to_string(), + }; let start = Instant::now(); @@ -195,32 +199,34 @@ async fn download( 0.0 }; - app.emit( + let _ = app.emit( "download-progress", format!( "{}:{:.8}:{}:{}:{:.2}", &name, progress, downloaded, speed, eta_secs ), - ) - .unwrap(); + ); } if total_size > 0 && downloaded < total_size { return "-1".to_string(); } - app.emit("download-hash-checking", format!("{}", &name)) - .unwrap(); + let _ = app.emit("download-hash-checking", format!("{}", &name)); let download_hash = { - let mut file = tokio::fs::File::open(download_part_path.clone()) - .await - .unwrap(); + let mut file = match tokio::fs::File::open(download_part_path.clone()).await { + Ok(f) => f, + Err(_) => return "-1".to_string(), + }; let mut hasher = Sha512::new(); { let mut buffer = [0; 8192]; loop { - let bytes_read = file.read(&mut buffer).await.unwrap(); + let bytes_read = match file.read(&mut buffer).await { + Ok(n) => n, + Err(_) => return "-1".to_string(), + }; if bytes_read == 0 { break; } @@ -232,21 +238,16 @@ async fn download( }; if hash != download_hash { - tokio::fs::remove_file(download_part_path.clone()) - .await - .unwrap(); + let _ = tokio::fs::remove_file(download_part_path.clone()).await; return "-1".to_string(); } - app.emit("download-finishing", format!("{}", &name)) - .unwrap(); + let _ = app.emit("download-finishing", format!("{}", &name)); - tokio::fs::rename(download_part_path.clone(), download_zip_path.clone()) - .await - .unwrap(); + if let Err(_) = tokio::fs::rename(download_part_path.clone(), download_zip_path.clone()).await { + return "-1".to_string(); + } let unzip_res = unzip_to_dir(download_zip_path.clone(), game_path.join(&name)).await; - tokio::fs::remove_file(download_zip_path.clone()) - .await - .unwrap(); + let _ = tokio::fs::remove_file(download_zip_path.clone()).await; if unzip_res == "-1" { return "-1".to_string(); } @@ -264,12 +265,10 @@ fn launch_game( use_wine: bool, wine_command: String, ) { - let game_folder = app - .path() - .app_local_data_dir() - .unwrap() - .join("game") - .join(&name); + let game_folder = match app.path().app_local_data_dir() { + Ok(p) => p.join("game").join(&name), + Err(_) => return, + }; if !game_folder.exists() { return; } @@ -301,28 +300,31 @@ fn launch_game( let quoted_path = format!("\"{}\"", exe_path.to_string_lossy()); let cmd = wine_command.replace("%path%", "ed_path); - Command::new("bash") + if let Err(_) = Command::new("bash") .arg("-c") .arg(cmd) .current_dir(&game_folder) - .spawn() - .unwrap(); + .spawn() { + eprintln!("Failed to launch game with Wine"); + } return; } } if platform() == "macos" { - Command::new("open") + if let Err(_) = Command::new("open") .arg(&executable) .current_dir(&game_folder) - .spawn() - .unwrap(); + .spawn() { + eprintln!("Failed to launch game on macOS"); + } } else { - Command::new(&exe_path) + if let Err(_) = Command::new(&exe_path) .current_dir(&game_folder) - .spawn() - .unwrap(); + .spawn() { + eprintln!("Failed to launch game"); + } } } @@ -350,10 +352,9 @@ pub fn run() { .plugin(tauri_plugin_clipboard_manager::init()) .plugin(tauri_plugin_notification::init()) .plugin(tauri_plugin_single_instance::init(|app, _args, _cwd| { - let _ = app - .get_webview_window("main") - .expect("no main window") - .set_focus(); + if let Some(window) = app.get_webview_window("main") { + let _ = window.set_focus(); + } })) .plugin(tauri_plugin_dialog::init()) .plugin(tauri_plugin_fs::init()) @@ -364,8 +365,11 @@ pub fn run() { .setup(|app| { #[cfg(target_os = "windows")] { - let main_window = app.get_webview_window("main").unwrap(); - main_window.create_overlay_titlebar().unwrap(); + if let Some(main_window) = app.get_webview_window("main") { + if let Err(e) = main_window.create_overlay_titlebar() { + eprintln!("Failed to create overlay titlebar: {:?}", e); + } + } } Ok(()) })