diff options
author | Rémy Raes <contact@remyraes.com> | 2022-09-24 19:01:33 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-24 19:01:33 +0200 |
commit | 5bf2254204692066fbd5774097b1e3fbc33d0157 (patch) | |
tree | 73652a5b6b0245aa81a9ce30451165207ac868f5 /src-tauri/src/lib.rs | |
parent | bdba63fa033a9f98d63951ec0cf9109f7949f444 (diff) | |
parent | 94979acb5d62fc5a0498b8d0170308511972fbb7 (diff) | |
download | FlightCore-5bf2254204692066fbd5774097b1e3fbc33d0157.tar.gz FlightCore-5bf2254204692066fbd5774097b1e3fbc33d0157.zip |
Merge branch 'GeckoEidechse:main' into feat/new-ui
Diffstat (limited to 'src-tauri/src/lib.rs')
-rw-r--r-- | src-tauri/src/lib.rs | 40 |
1 files changed, 3 insertions, 37 deletions
diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index f19a178c..d0bc9be2 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -2,10 +2,9 @@ use std::env; use anyhow::{anyhow, Context, Result}; +mod platform_specific; #[cfg(target_os = "windows")] -use powershell_script::PsScriptBuilder; -#[cfg(target_os = "windows")] -use regex::Regex; +use platform_specific::windows; use serde::{Deserialize, Serialize}; use sysinfo::SystemExt; @@ -41,39 +40,6 @@ pub fn check_mod_version_number(path_to_mod_folder: String) -> Result<String, an Ok(mod_version_number.to_string()) } -#[cfg(target_os = "windows")] -/// Runs a powershell command and parses output to get Titanfall2 install location on Origin -fn windows_origin_install_location_detection() -> Result<String, anyhow::Error> { - dbg!(); - - // Run PowerShell command to get Titanfall2 Origin install path - let ps = PsScriptBuilder::new() - .no_profile(true) - .non_interactive(true) - .hidden(false) - .print_commands(false) - .build(); - let output = ps.run(r#"Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Respawn\Titanfall2\ -Name "Install Dir""#).unwrap(); - - // Get command output as string - let string = output.stdout().unwrap(); - - // Regex the result out and return value accordingly - let regex = Regex::new(r"(?m)Install Dir.+: (.+)\r\n").unwrap(); - let mut result = regex.captures_iter(&string); - match result.next() { - Some(mat) => { - let game_path = mat.get(1).map_or("", |m| m.as_str()); - println!("{}", game_path); - match check_is_valid_game_path(game_path) { - Ok(()) => return Ok(game_path.to_owned()), - Err(err) => Err(err), - } - } - None => Err(anyhow!("No Origin install path found")), - } -} - /// Attempts to find the game install location pub fn find_game_install_location() -> Result<GameInstall, anyhow::Error> { // Attempt parsing Steam library directly @@ -97,7 +63,7 @@ pub fn find_game_install_location() -> Result<GameInstall, anyhow::Error> { // (On Windows only) try parsing Windows registry for Origin install path #[cfg(target_os = "windows")] - match windows_origin_install_location_detection() { + match windows::origin_install_location_detection() { Ok(game_path) => { let game_install = GameInstall { game_path: game_path, |