use crate::internal::commands::ShellCommand; use crate::internal::error::SilentUnwrap; use crate::internal::exit_code::AppExitCode; use crate::internal::rpc::rpcsearch; use crate::{log, Options}; pub async fn aur_search(query: &str, options: Options) { let verbosity = options.verbosity; let res = rpcsearch(query.to_string()); for package in &res.results { println!( "aur/{} {}\n {}", package.name, package.version, package .description .as_ref() .unwrap_or(&"No description".to_string()) ) } if verbosity >= 1 { log!("Found {} resuls for \"{}\" in AUR", res.resultcount, query); } } pub async fn repo_search(query: &str, options: Options) { let verbosity = options.verbosity; let output = ShellCommand::pacman() .arg("-Ss") .arg(query) .wait_with_output() .await .silent_unwrap(AppExitCode::PacmanError) .stdout; if verbosity >= 1 { log!( "Found {} results for \"{}\" in repos", &output.split('\n').count() / 2, &query ); } println!("{}", output) }