From c820a57fc5f723cce7b289682a3a0e58a7dbabc1 Mon Sep 17 00:00:00 2001 From: Pauline Date: Sat, 17 Aug 2024 18:58:05 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix:=20error=20handling?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Pauline --- packages/core/src/api/metadata.rs | 2 ++ packages/core/src/api/package/from.rs | 4 +--- packages/core/src/api/package/mrpack.rs | 16 ++++++++-------- packages/core/src/api/settings.rs | 2 +- packages/core/src/game/mod.rs | 4 ++-- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/core/src/api/metadata.rs b/packages/core/src/api/metadata.rs index e847c999..9cc749f0 100644 --- a/packages/core/src/api/metadata.rs +++ b/packages/core/src/api/metadata.rs @@ -4,6 +4,8 @@ use crate::State; pub use interpulse::api::minecraft::VersionManifest; pub use interpulse::api::modded::Manifest; +// TODO: better error handling (prisma?) + /// Get a [`VersionManifest`] for all available Minecraft versions. #[tracing::instrument] pub async fn get_minecraft_versions() -> crate::Result { diff --git a/packages/core/src/api/package/from.rs b/packages/core/src/api/package/from.rs index 4f575e5f..2cd7694c 100644 --- a/packages/core/src/api/package/from.rs +++ b/packages/core/src/api/package/from.rs @@ -233,9 +233,7 @@ pub async fn generate_pack_from_version_id( .first() .map(|file| (file.url.clone(), file.hashes.get("sha1"))) } - .ok_or_else(|| { - crate::ErrorKind::AnyhowError(anyhow::anyhow!("specified version has no files")) - })?; + .ok_or_else(|| { anyhow::anyhow!("specified version has no files") })?; let file = fetch_advanced( Method::GET, diff --git a/packages/core/src/api/package/mrpack.rs b/packages/core/src/api/package/mrpack.rs index e473fa94..c97ccbfd 100644 --- a/packages/core/src/api/package/mrpack.rs +++ b/packages/core/src/api/package/mrpack.rs @@ -96,7 +96,7 @@ pub async fn install_zipped_mrpack_files( let pack: PackFormat = serde_json::from_str(&manifest)?; if &*pack.game != "minecraft" { - return Err(anyhow::anyhow!("pack doesn't support minecraft").into()); + return Err(anyhow::anyhow!("pack doesn't support Minecraft").into()); } set_cluster_information( @@ -231,7 +231,7 @@ pub async fn install_zipped_mrpack_files( Ok::(cluster_path.clone()) } else { - Err(anyhow::anyhow!("No pack manifest found in mrpack").into()) + Err(anyhow::anyhow!("no pack manifest found in mrpack").into()) } } @@ -259,7 +259,7 @@ pub async fn remove_all_related_files( let pack: PackFormat = serde_json::from_str(&manifest)?; if &*pack.game != "minecraft" { - return Err(anyhow::anyhow!("package doesn't support Minecraft").into()); + return Err(anyhow::anyhow!("pack doesn't support Minecraft").into()); } crate::api::cluster::edit(&cluster_path, |cl| { @@ -292,12 +292,12 @@ pub async fn remove_all_related_files( .into_values() .map(|p| p.package_id) .collect::>(); - let cluster = cluster::get(&cluster_path, None).await?.ok_or_else(|| { - crate::ErrorKind::AnyhowError(anyhow::anyhow!( + let cluster = cluster::get(&cluster_path, None).await?.ok_or_else(|| + anyhow::anyhow!( "{} is an unmanaged cluster!", cluster_path.to_string() - )) - })?; + ) + )?; for (package_id, package) in &cluster.packages { if let PackageMetadata::Managed { package, .. } = &package.meta { if to_remove.contains(&package.id) { @@ -338,6 +338,6 @@ pub async fn remove_all_related_files( } Ok(()) } else { - Err(anyhow::anyhow!("No pack manifest found in mrpack").into()) + Err(anyhow::anyhow!("no pack manifest found in mrpack").into()) } } diff --git a/packages/core/src/api/settings.rs b/packages/core/src/api/settings.rs index 574259e6..e3f6c001 100644 --- a/packages/core/src/api/settings.rs +++ b/packages/core/src/api/settings.rs @@ -20,7 +20,7 @@ pub async fn set(settings: Settings) -> crate::Result<()> { let state = State::get().await?; if settings.config_dir != state.settings.read().await.config_dir { - return Err(anyhow::anyhow!("ccannot change config directory as a setting").into()); + return Err(anyhow::anyhow!("cannot change config directory as a setting").into()); } let (io, fetch) = async { diff --git a/packages/core/src/game/mod.rs b/packages/core/src/game/mod.rs index c7cfdab4..47442055 100644 --- a/packages/core/src/game/mod.rs +++ b/packages/core/src/game/mod.rs @@ -192,12 +192,12 @@ pub async fn install_minecraft( false, )?) .await? - .ok_or_else(|| { + .ok_or_else(|| anyhow::anyhow!( "failed to find processor main class for {}", processor.jar ) - })?, + )?, ) .args(arguments::processor_arguments( &libraries,