From 6bd83ce9c86a041372f0bdc960ba9fc7263fa31b Mon Sep 17 00:00:00 2001 From: Henrik Friedrichsen Date: Mon, 26 Jul 2021 18:50:08 +0200 Subject: [PATCH] Don't panic if user quits login process Fixes #479 --- src/main.rs | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main.rs b/src/main.rs index 9689113..c40ed8b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -75,7 +75,7 @@ fn setup_logging(filename: &str) -> Result<(), fern::InitError> { Ok(()) } -fn credentials_prompt(error_message: Option) -> Credentials { +fn credentials_prompt(error_message: Option) -> Result { if let Some(message) = error_message { let mut siv = cursive::default(); let dialog = cursive::views::Dialog::around(cursive::views::TextView::new(format!( @@ -87,7 +87,7 @@ fn credentials_prompt(error_message: Option) -> Credentials { siv.run(); } - authentication::create_credentials().expect("Could not create credentials") + authentication::create_credentials() } type UserData = Arc; @@ -96,7 +96,7 @@ struct UserDataInner { } #[tokio::main] -async fn main() { +async fn main() -> Result<(), String> { let backends = { let backends: Vec<&str> = audio_backend::BACKENDS.iter().map(|b| b.0).collect(); format!("Audio backends: {}", backends.join(", ")) @@ -164,13 +164,13 @@ async fn main() { info!("Using cached credentials"); c } - None => credentials_prompt(None), + None => credentials_prompt(None)?, } }; while let Err(error) = spotify::Spotify::test_credentials(credentials.clone()) { let error_msg = format!("{}", error); - credentials = credentials_prompt(Some(error_msg)); + credentials = credentials_prompt(Some(error_msg))?; } let mut cursive = cursive::default().into_runner(); @@ -315,4 +315,6 @@ async fn main() { } } } + + Ok(()) }