Skip to content

Commit

Permalink
chore: bump libthermite from 0.7.1 to 0.8.1 in /src-tauri (#954)
Browse files Browse the repository at this point in the history
* chore: bump libthermite from 0.7.1 to 0.8.1 in /src-tauri

Bumps libthermite from 0.7.1 to 0.8.1.

---
updated-dependencies:
- dependency-name: libthermite
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>

* fix: Adjust logic for new libthermite release

Not the nicest implementation but does the trick

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: GeckoEidechse <[email protected]>
  • Loading branch information
dependabot[bot] and GeckoEidechse authored Jul 27, 2024
1 parent 3ce94cd commit fee2044
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 10 deletions.
4 changes: 2 additions & 2 deletions src-tauri/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion src-tauri/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ steamlocate = "2.0.0-beta.2"
# Error messages
anyhow = "1.0"
# libthermite for Northstar/mod install handling
libthermite = { version = "0.7.1", features = ["proton"] }
libthermite = { version = "0.8.1", features = ["proton"] }
# zip stuff
zip = "0.6.2"
# Regex
Expand Down
26 changes: 19 additions & 7 deletions src-tauri/src/mod_management/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ use thermite::prelude::ThermiteError;
use crate::NorthstarMod;
use anyhow::{anyhow, Result};
use serde::{Deserialize, Serialize};
use std::error::Error;
use std::str::FromStr;
use std::string::ToString;
use std::{fs, path::PathBuf};
Expand Down Expand Up @@ -505,10 +506,14 @@ fn delete_older_versions(
/// Checks whether some mod is correctly formatted
/// Currently checks whether
/// - Some `mod.json` exists under `mods/*/mod.json`
fn fc_sanity_check(input: &&fs::File) -> bool {
fn fc_sanity_check(input: &&fs::File) -> Result<(), Box<dyn Error + Send + Sync + 'static>> {
let mut archive = match zip::read::ZipArchive::new(*input) {
Ok(archive) => archive,
Err(_) => return false,
Err(_) => {
return Err(Box::new(ThermiteError::UnknownError(
"Failed reading zip file".into(),
)))
}
};

let mut has_mods = false;
Expand Down Expand Up @@ -538,14 +543,22 @@ fn fc_sanity_check(input: &&fs::File) -> bool {
if name.to_str().unwrap().contains(".dll") {
log::warn!("Plugin detected, prompting user");
if !plugins::plugin_prompt() {
return false; // Plugin detected and user denied install
return Err(Box::new(ThermiteError::UnknownError(
"Plugin detected and install denied".into(),
)));
}
}
}
}
}

has_mods && mod_json_exists
if has_mods && mod_json_exists {
Ok(())
} else {
Err(Box::new(ThermiteError::UnknownError(
"Mod not correctly formatted".into(),
)))
}
}

// Copied from `libtermite` source code and modified
Expand Down Expand Up @@ -643,9 +656,8 @@ pub async fn fc_download_mod_and_install(
Err(err) => {
log::warn!("libthermite couldn't install mod {thunderstore_mod_string} due to {err:?}",);
return match err {
ThermiteError::SanityError => Err(
"Mod failed sanity check during install. It's probably not correctly formatted"
.to_string(),
ThermiteError::SanityError(e) => Err(
format!("Mod failed sanity check during install. It's probably not correctly formatted. {}", e)
),
_ => Err(err.to_string()),
};
Expand Down

0 comments on commit fee2044

Please sign in to comment.