From d33cb027357c7cc82679548ee999ead2cc2a6ecc Mon Sep 17 00:00:00 2001 From: DanConwayDev Date: Tue, 6 May 2025 14:51:02 +0100 Subject: chore: bump dialoguer v0.11.0 and fix breaking changes --- Cargo.lock | 5 +++-- Cargo.toml | 2 +- src/lib/cli_interactor.rs | 27 +++++++++++++-------------- test_utils/Cargo.toml | 2 +- 4 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 103b8c9..50abbc1 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -504,13 +504,14 @@ checksum = "2a2330da5de22e8a3cb63252ce2abb30116bf5265e89c0e01bc17015ce30a476" [[package]] name = "dialoguer" -version = "0.10.4" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59c6f2989294b9a498d3ad5491a79c6deb604617378e1cdc4bfc1c1361fe2f87" +checksum = "658bce805d770f407bc62102fca7c2c64ceef2fbcb2b8bd19d2765ce093980de" dependencies = [ "console", "shell-words", "tempfile", + "thiserror 1.0.69", "zeroize", ] diff --git a/Cargo.toml b/Cargo.toml index baef2a6..5436740 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,7 +18,7 @@ auth-git2 = "0.5.4" chacha20poly1305 = "0.10.1" clap = { version = "4.3.19", features = ["derive"] } console = "0.15.7" -dialoguer = "0.10.4" +dialoguer = "0.11.0" directories = "6.0.0" futures = "0.3.28" git2 = "0.20.2" diff --git a/src/lib/cli_interactor.rs b/src/lib/cli_interactor.rs index 1b74101..8fca81d 100644 --- a/src/lib/cli_interactor.rs +++ b/src/lib/cli_interactor.rs @@ -19,20 +19,21 @@ pub trait InteractorPrompt { } impl InteractorPrompt for Interactor { fn input(&self, parms: PromptInputParms) -> Result { - let mut input = Input::with_theme(&self.theme); - input.with_prompt(parms.prompt).allow_empty(parms.optional); + let mut input = Input::with_theme(&self.theme) + .with_prompt(parms.prompt) + .allow_empty(parms.optional) + .report(parms.report); if !parms.default.is_empty() { - input.default(parms.default); + input = input.default(parms.default); } - input.report(parms.report); Ok(input.interact_text()?) } fn password(&self, parms: PromptPasswordParms) -> Result { - let mut p = Password::with_theme(&self.theme); - p.with_prompt(parms.prompt); - p.report(parms.report); + let mut p = Password::with_theme(&self.theme) + .with_prompt(parms.prompt) + .report(parms.report); if parms.confirm { - p.with_confirmation("confirm password", "passwords didnt match..."); + p = p.with_confirmation("confirm password", "passwords didnt match..."); } let pass: String = p.interact()?; Ok(pass) @@ -45,27 +46,25 @@ impl InteractorPrompt for Interactor { Ok(confirm) } fn choice(&self, parms: PromptChoiceParms) -> Result { - let mut choice = dialoguer::Select::with_theme(&self.theme); - choice + let mut choice = dialoguer::Select::with_theme(&self.theme) .with_prompt(parms.prompt) .report(parms.report) .items(&parms.choices); if let Some(default) = parms.default { if std::env::var("NGITTEST").is_err() { - choice.default(default); + choice = choice.default(default); } } choice.interact().context("failed to get choice") } fn multi_choice(&self, parms: PromptMultiChoiceParms) -> Result> { // the colorful theme is not very clear so falling back to default - let mut choice = dialoguer::MultiSelect::default(); - choice + let mut choice = dialoguer::MultiSelect::default() .with_prompt(parms.prompt) .report(parms.report) .items(&parms.choices); if let Some(defaults) = parms.defaults { - choice.defaults(&defaults); + choice = choice.defaults(&defaults); } choice.interact().context("failed to get choice") } diff --git a/test_utils/Cargo.toml b/test_utils/Cargo.toml index 0888aa6..2001733 100644 --- a/test_utils/Cargo.toml +++ b/test_utils/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" [dependencies] anyhow = "1.0.75" assert_cmd = "2.0.12" -dialoguer = "0.10.4" +dialoguer = "0.11.0" directories = "6.0.0" futures = "0.3.28" git2 = "0.20.2" -- cgit v1.2.3