Skip to content

Commit

Permalink
lint: hopefully the final cleanup of the rust code
Browse files Browse the repository at this point in the history
  • Loading branch information
xTVaser committed Mar 12, 2023
1 parent 5bd4d6f commit 1a28c83
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 38 deletions.
2 changes: 1 addition & 1 deletion src-tauri/src/commands.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ pub enum CommandError {
#[error("{0}")]
VersionManagement(String),
#[error("{0}")]
InvalidPath(String),
GameManagement(String),
#[error("{0}")]
BinaryExecution(String),
#[error("{0}")]
Expand Down
14 changes: 11 additions & 3 deletions src-tauri/src/commands/config.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
use std::path::Path;

use crate::{config::LauncherConfig, util::file::delete_dir};
use tauri::Manager;

Expand Down Expand Up @@ -124,7 +122,17 @@ pub async fn is_game_installed(
let version_folder = config_lock.game_install_version_folder(&game_name);

if version.is_empty() || version_folder.is_empty() {
config_lock.update_installed_game_version(&game_name, false);
config_lock
.update_installed_game_version(&game_name, false)
.map_err(|err| {
log::error!(
"Unable to mark partially installed game as uninstalled {}",
err
);
CommandError::Configuration(format!(
"Unable to mark partially installed game as uninstalled"
))
})?;
return Ok(false);
}

Expand Down
80 changes: 48 additions & 32 deletions src-tauri/src/commands/game.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,42 +13,58 @@ pub async fn uninstall_game(
game_name: String,
) -> Result<(), CommandError> {
let mut config_lock = config.lock().await;
match &config_lock.installation_dir {
None => Err(CommandError::InvalidPath(format!(
"Can't uninstalled the game, no installation directory found"
))),
Some(path) => {
// TODO - cleanup
let data_folder = Path::new(path).join("active").join(&game_name).join("data");
std::fs::remove_dir_all(data_folder.join("decompiler_out"));
std::fs::remove_dir_all(data_folder.join("iso_data"));
std::fs::remove_dir_all(data_folder.join("out"));
config_lock.update_installed_game_version(&game_name, false);
app_handle.emit_all("gameUninstalled", {}).unwrap();
Ok(())

let install_path = match &config_lock.installation_dir {
None => {
return Err(CommandError::GameManagement(format!(
"No installation directory set, can't perform uninstallation"
)))
}
}
Some(path) => Path::new(path),
};

let data_folder = Path::new(install_path)
.join("active")
.join(&game_name)
.join("data");

std::fs::remove_dir_all(data_folder.join("decompiler_out"))?;
std::fs::remove_dir_all(data_folder.join("iso_data"))?;
std::fs::remove_dir_all(data_folder.join("out"))?;

config_lock
.update_installed_game_version(&game_name, false)
.map_err(|_| {
CommandError::GameManagement(format!("Unable to persist game installation status"))
})?;
app_handle.emit_all("gameUninstalled", {})?;
Ok(())
}

#[tauri::command]
pub async fn reset_game_settings(game_name: String) -> Result<(), ()> {
let config_dir = config_dir();
match &config_dir {
None => Ok(()),
Some(path) => {
let path_to_settings = path
.join("OpenGOAL")
.join(game_name)
.join("settings")
.join("pc-settings.gc");
if path_to_settings.exists() {
let mut backup_file = path_to_settings.clone();
backup_file.set_file_name("pc-settings.old.gc");
std::fs::rename(path_to_settings, backup_file);
Ok(())
} else {
Ok(())
}
pub async fn reset_game_settings(game_name: String) -> Result<(), CommandError> {
let config_dir = match config_dir() {
None => {
return Err(CommandError::GameManagement(format!(
"Could not determine game config directory"
)))
}
Some(path) => path,
};

let path_to_settings = config_dir
.join("OpenGOAL")
.join(game_name)
.join("settings")
.join("pc-settings.gc");
if path_to_settings.exists() {
let mut backup_file = path_to_settings.clone();
backup_file.set_file_name("pc-settings.old.gc");
std::fs::rename(path_to_settings, backup_file)?;
Ok(())
} else {
return Err(CommandError::GameManagement(format!(
"Game config directory does not exist, cannot reset settings"
)));
}
}
2 changes: 1 addition & 1 deletion src/components/games/setup/GameSetup.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
// Check requirements
const isAvxMet = await isAVXRequirementMet();
let isOpenGLMet = await isOpenGLRequirementMet();
if (isOpenGLMet === null) {
if (isOpenGLMet === null || isOpenGLMet === undefined) {
isOpenGLMet = await isOpenGLVersionSupported("4.3");
await setOpenGLRequirementMet(isOpenGLMet);
}
Expand Down
1 change: 0 additions & 1 deletion src/components/games/setup/Requirements.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
onMount(async () => {
isAVXMet = await isAVXRequirementMet();
isOpenGLMet = await isOpenGLRequirementMet();
console.log(isOpenGLMet);
});
function alertColor(val: boolean | undefined) {
Expand Down

0 comments on commit 1a28c83

Please sign in to comment.