diff options
Diffstat (limited to 'ozone-cli/src')
| -rw-r--r-- | ozone-cli/src/main.rs | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/ozone-cli/src/main.rs b/ozone-cli/src/main.rs index 05fef49..d4b70a5 100644 --- a/ozone-cli/src/main.rs +++ b/ozone-cli/src/main.rs @@ -377,7 +377,12 @@ async fn main_inner(cli: Cli, multi: MultiProgress) -> Result<ExitCode, Box<dyn println!("Authentication success! Logging in..."); - match acct.log_in_silent(&client).await { + let progress = IndicatifProgress { + bar: multi.add(ProgressBar::no_length() + .with_style(ProgressStyle::with_template("{spinner} Step {pos} of {len}: {msg}").unwrap())) + }; + + match acct.log_in_silent(&client, &progress as &dyn ProgressIndication).await { Ok(_) => (), Err(e) => match e.kind() { AuthErrorKind::NotOnXbox => { @@ -405,6 +410,8 @@ async fn main_inner(cli: Cli, multi: MultiProgress) -> Result<ExitCode, Box<dyn } } + progress.bar.finish(); + let key = accounts.add_account(acct.into()).expect("authentication succeeded but xuid missing????"); if !args.no_select { accounts.set_selected_account(key); @@ -453,10 +460,14 @@ async fn main_inner(cli: Cli, multi: MultiProgress) -> Result<ExitCode, Box<dyn }; let client = MsaAccount::create_client(); + let progress = IndicatifProgress { + bar: multi.add(ProgressBar::no_length() + .with_style(ProgressStyle::with_template("{spinner} Step {pos} of {len}: {msg}").unwrap())) + }; match account { Account::MSA(msa_acct) => { - msa_acct.log_in_silent(&client).await?; + msa_acct.log_in_silent(&client, &progress as &dyn ProgressIndication).await?; println!("Successfully refreshed account: {}", account); }, _ => { @@ -465,6 +476,8 @@ async fn main_inner(cli: Cli, multi: MultiProgress) -> Result<ExitCode, Box<dyn } } + progress.bar.finish(); + accounts.save(&accounts_path).await?; } } @@ -490,8 +503,13 @@ async fn main_inner(cli: Cli, multi: MultiProgress) -> Result<ExitCode, Box<dyn if let Account::MSA(msa_acct) = account { let client = MsaAccount::create_client(); + let progress = IndicatifProgress { + bar: multi.add(ProgressBar::no_length() + .with_style(ProgressStyle::with_template("{spinner} Step {pos} of {len}: {msg}").unwrap())) + }; + println!("Looking up account information..."); - match msa_acct.log_in_silent(&client).await { + match msa_acct.log_in_silent(&client, &progress as &dyn ProgressIndication).await { Ok(_) => (), Err(e) if e.kind() == AuthErrorKind::InteractionRequired => { eprintln!("This account requires interactive authentication: {}", account); @@ -503,6 +521,8 @@ async fn main_inner(cli: Cli, multi: MultiProgress) -> Result<ExitCode, Box<dyn return Ok(ExitCode::FAILURE); } } + + progress.bar.finish(); } accounts.save(&accounts_path).await?; |
