diff --git a/src/error.rs b/src/error.rs index d5efe84..4e29f1e 100644 --- a/src/error.rs +++ b/src/error.rs @@ -77,7 +77,7 @@ impl std::fmt::Display for GolgiError { // TODO: improve this variant with a context message // then have the core display msg be: "SSB RPC error: {}", context GolgiError::Rpc(ref err) => write!(f, "SSB RPC failure: {}", err), - GolgiError::Sbot(ref err) => write!(f, "Sbot returned an error response: {}", err), + GolgiError::Sbot(ref err) => write!(f, "Sbot encountered an error: {}", err), GolgiError::SigilLink(ref context) => write!(f, "SSB blob ID error: {}", context), GolgiError::SerdeJson(_) => write!(f, "Failed to serialize JSON slice"), //GolgiError::WhoAmI(ref err) => write!(f, "{}", err), diff --git a/src/sbot.rs b/src/sbot.rs index 63bdeb4..d4f4805 100644 --- a/src/sbot.rs +++ b/src/sbot.rs @@ -75,25 +75,35 @@ impl Sbot { }; let OwnedIdentity { pk, sk, id } = match keystore { - Keystore::Patchwork => keystore::from_patchwork_local() - .await - .expect("couldn't read local patchwork secret from default location"), - Keystore::GoSbot => keystore::from_gosbot_local() - .await - .expect("couldn't read local go-sbot secret from default location"), + Keystore::Patchwork => keystore::from_patchwork_local().await.map_err(|_err| { + GolgiError::Sbot( + "sbot initialization error: couldn't read local patchwork secret from default location".to_string(), + ) + })?, + Keystore::GoSbot => keystore::from_gosbot_local().await.map_err(|_err| { + GolgiError::Sbot( + "sbot initialization error: couldn't read local go-sbot secret from default location".to_string(), + ) + })?, Keystore::CustomGoSbot(key_path) => { keystore::from_custom_gosbot_keypath(key_path.to_string()) .await - .unwrap_or_else(|_| { - panic!("couldn't read local go-sbot secret from: {}", key_path) - }) + .map_err(|_err| { + GolgiError::Sbot(format!( + "sbot initialization error: couldn't read local go-sbot secret from: {}", + key_path + )) + })? } Keystore::CustomPatchwork(key_path) => { keystore::from_custom_patchwork_keypath(key_path.to_string()) .await - .unwrap_or_else(|_| { - panic!("couldn't read local patchwork secret from: {}", key_path) - }) + .map_err(|_err| { + GolgiError::Sbot(format!( + "sbot initialization error: couldn't read local patchwork secret from: {}", + key_path + )) + })? } };