From 312cddf2c2b6fd715e3133095c4562c78807b236 Mon Sep 17 00:00:00 2001 From: GeckoEidechse Date: Thu, 1 Sep 2022 19:26:39 +0200 Subject: Handle gamepath check if manually selected as well as Northstar existence and up-to-date check --- src-tauri/src/lib.rs | 13 +++++++++++++ src-tauri/src/main.rs | 17 +++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) (limited to 'src-tauri') diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 626f083b..58a04c5e 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -88,3 +88,16 @@ pub fn get_northstar_version_number() -> Result { Ok(initial_version_number) } + +/// Checks whether the provided path is a valid Titanfall2 gamepath by checking against a certain set of criteria +pub fn check_is_valid_game_path(game_install_path: &str) -> Result<(), anyhow::Error> { + let is_correct_game_path = + std::path::Path::new(&format!("{}/Titanfall2.exe", game_install_path)).exists(); + println!("Titanfall2.exe exists in path? {}", is_correct_game_path); + + // Exit early if wrong game path + if !is_correct_game_path { + return Err(anyhow!("Incorrect game path \"{}\"", game_install_path)); // Return error cause wrong game path + } + Ok(()) +} diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index e81be131..34dcc39c 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -8,7 +8,7 @@ use std::{ time::Duration, }; -use app::{find_game_install_location, get_northstar_version_number}; +use app::{check_is_valid_game_path, find_game_install_location, get_northstar_version_number}; use tauri::{Manager, State}; use tokio::time::sleep; @@ -47,7 +47,8 @@ fn main() { find_game_install_location_caller, get_version_number, get_northstar_version_number_caller, - check_is_northstar_outdated + check_is_northstar_outdated, + verify_install_location ]) .run(tauri::generate_context!()) .expect("error while running tauri application"); @@ -107,3 +108,15 @@ fn check_is_northstar_outdated() -> bool { // TODO implement check false } + +#[tauri::command] +/// Checks if is valid Titanfall2 install based on certain conditions +fn verify_install_location(game_path: String) -> bool { + match check_is_valid_game_path(&game_path) { + Ok(()) => true, + Err(err) => { + println!("{}", err); + false + } + } +} -- cgit v1.2.3