diff options
| author | nsfisis <nsfisis@gmail.com> | 2026-02-23 15:11:36 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2026-02-23 15:11:36 +0900 |
| commit | d6e0c6d34449224ac3687daf551a0acfd15cee32 (patch) | |
| tree | d6767718ad566542d4770d4688d9961e0f74ea3d /crates/mozart/src/commands/search.rs | |
| parent | 7e45efd8a1f488b1a684f9efe31ff39009fc9e54 (diff) | |
| download | php-mozart-d6e0c6d34449224ac3687daf551a0acfd15cee32.tar.gz php-mozart-d6e0c6d34449224ac3687daf551a0acfd15cee32.tar.zst php-mozart-d6e0c6d34449224ac3687daf551a0acfd15cee32.zip | |
refactor(cli): route command output through Console abstraction
Replace direct println\!/eprintln\! calls with console.write(),
console.info(), and console.write_stdout() across all command
handlers to respect verbosity settings.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'crates/mozart/src/commands/search.rs')
| -rw-r--r-- | crates/mozart/src/commands/search.rs | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/crates/mozart/src/commands/search.rs b/crates/mozart/src/commands/search.rs index d7be821..b747b0e 100644 --- a/crates/mozart/src/commands/search.rs +++ b/crates/mozart/src/commands/search.rs @@ -1,4 +1,5 @@ use clap::Args; +use mozart_core::console::Verbosity; use mozart_core::console_format; use mozart_registry::packagist::SearchResult; use serde::Serialize; @@ -104,7 +105,7 @@ fn passes_only_vendor(result: &SearchResult, query: &str) -> bool { pub async fn execute( args: &SearchArgs, _cli: &super::Cli, - _console: &mozart_core::console::Console, + console: &mozart_core::console::Console, ) -> anyhow::Result<()> { if args.only_name && args.only_vendor { anyhow::bail!("--only-name and --only-vendor cannot be used together"); @@ -115,12 +116,9 @@ pub async fn execute( let format = args.format.as_deref().unwrap_or("text"); if !matches!(format, "text" | "json") { - eprintln!( - "{}", - console_format!( - "<error>Unsupported format \"{format}\". See help for supported formats.</error>" - ) - ); + console.error(&console_format!( + "<error>Unsupported format \"{format}\". See help for supported formats.</error>" + )); return Err(mozart_core::exit_code::bail_silent( mozart_core::exit_code::GENERAL_ERROR, )); @@ -153,17 +151,19 @@ pub async fn execute( match format { "json" => { let json = serde_json::to_string_pretty(&vendor_names)?; - println!("{json}"); + console.write_stdout(&json, Verbosity::Normal); } _ => { if vendor_names.is_empty() { - eprintln!( - "{}", - console_format!("<warning>No packages found for \"{query}\"</warning>") - ); + console.info(&console_format!( + "<warning>No packages found for \"{query}\"</warning>" + )); } else { for vendor in &vendor_names { - println!("{}", console_format!("<info>{vendor}</info>")); + console.write_stdout( + &console_format!("<info>{vendor}</info>"), + Verbosity::Normal, + ); } } } @@ -179,14 +179,13 @@ pub async fn execute( .map(|r| SearchResultOutput::from(*r)) .collect(); let json = serde_json::to_string_pretty(&output)?; - println!("{json}"); + console.write_stdout(&json, Verbosity::Normal); } _ => { if results.is_empty() { - eprintln!( - "{}", - console_format!("<warning>No packages found for \"{query}\"</warning>") - ); + console.info(&console_format!( + "<warning>No packages found for \"{query}\"</warning>" + )); return Ok(()); } @@ -211,7 +210,10 @@ pub async fn execute( }; let padding = " ".repeat(name_width.saturating_sub(result.name.len())); - println!("{}{}{}{}", result.name, padding, warning, desc_display); + console.write_stdout( + &format!("{}{}{}{}", result.name, padding, warning, desc_display), + Verbosity::Normal, + ); } } } |
