use crate::mods::strs::{err_rec, err_unrec, succ}; use ansi_term::Colour; use std::{ops::Deref, process::Command}; pub fn a_search(pkg: &str) { let results = raur::search(&pkg); for r in &results { if r.len() == 0 { err_rec(format!("No matching AUR packages found")); } for res in r { println!( "{}{} {}\n {}", Colour::Cyan.bold().paint("aur/"), Colour::White.bold().paint(&res.name), Colour::Green.bold().paint(&res.version), Colour::White.paint(res.description.as_ref().map_or("n/a", String::deref)) ); } } } pub fn r_search(pkg: &str) { let result = Command::new("pacman") .arg("-Ss") .arg(&pkg) .status() .unwrap(); match result.code() { Some(0) => succ(format!("Repo search successful")), Some(1) => err_rec(format!("No matching repo packages found")), Some(_) => err_unrec(format!("Someting went terribly wrong")), None => err_unrec(format!("Couldn't search pacman repos")), }; }