aboutsummaryrefslogtreecommitdiffhomepage
path: root/crates/mozart/src/commands/search.rs
diff options
context:
space:
mode:
authornsfisis <nsfisis@gmail.com>2026-02-23 15:11:36 +0900
committernsfisis <nsfisis@gmail.com>2026-02-23 15:11:36 +0900
commitd6e0c6d34449224ac3687daf551a0acfd15cee32 (patch)
treed6767718ad566542d4770d4688d9961e0f74ea3d /crates/mozart/src/commands/search.rs
parent7e45efd8a1f488b1a684f9efe31ff39009fc9e54 (diff)
downloadphp-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.rs40
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,
+ );
}
}
}