From 84d0cd7473544c3b1046db9baa4ec611b9becd0c Mon Sep 17 00:00:00 2001 From: purp1e Date: Wed, 6 Aug 2025 17:59:57 +0800 Subject: [PATCH] [feat] launch game code optim + open path after mkdir --- src-tauri/src/steam/mod.rs | 10 +++++----- src-tauri/src/tool/common.rs | 20 ++++++++++++-------- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src-tauri/src/steam/mod.rs b/src-tauri/src/steam/mod.rs index f16597f..2f78e66 100644 --- a/src-tauri/src/steam/mod.rs +++ b/src-tauri/src/steam/mod.rs @@ -24,11 +24,11 @@ pub fn launch_game( let mut opt = launch_option.replace("\n", " "); - if server == "perfectworld" { - opt = opt.replace("-worldwide", "") + " -perfectworld"; - } else if server == "worldwide" { - opt = opt.replace("-perfectworld", "") + " -worldwide"; - } + opt = match server { + "perfectworld" => opt.replace("-worldwide", "") + " -perfectworld", + "worldwide" => opt.replace("-perfectworld", "") + " -worldwide", + _ => opt, + }; let opts = format!("-applaunch 730 {}", opt); let opts_split = opts.split_whitespace().collect::>(); diff --git a/src-tauri/src/tool/common.rs b/src-tauri/src/tool/common.rs index 8b7d142..3858eca 100644 --- a/src-tauri/src/tool/common.rs +++ b/src-tauri/src/tool/common.rs @@ -1,3 +1,4 @@ +use std::fs; use std::process::Command; #[cfg(windows)] @@ -23,10 +24,8 @@ pub fn run_steam() -> std::io::Result { .creation_flags(CREATE_NO_WINDOW) .output(); - #[cfg(target_os = "macos")] - Command::new("open") - .args(&["-a", "Steam"]) - .output() + #[cfg(target_os = "macos")] + Command::new("open").args(&["-a", "Steam"]).output() } pub fn get_exe_path(name: &str) -> Result { @@ -44,10 +43,13 @@ pub fn get_exe_path(name: &str) -> Result { .creation_flags(CREATE_NO_WINDOW) .output()?; - #[cfg(target_os = "macos")] - let output = Command::new("osascript") - .args(&["-e", &format!("tell application \"{}\" to get path to me", name)]) - .output()?; + #[cfg(target_os = "macos")] + let output = Command::new("osascript") + .args(&[ + "-e", + &format!("tell application \"{}\" to get path to me", name), + ]) + .output()?; let out = String::from_utf8_lossy(&output.stdout).to_string(); @@ -68,6 +70,8 @@ pub fn get_exe_path(name: &str) -> Result { pub fn open_path(path: &str) -> Result<(), std::io::Error> { // path中所有/ 转换为 \ let path = path.replace("/", "\\"); + fs::create_dir_all(path)?; + #[cfg(windows)] Command::new("cmd.exe") .args(["/c", "start", "", &path])