diff --git a/src/mods/clone.rs b/src/mods/clone.rs index c6395c1..fa877ab 100644 --- a/src/mods/clone.rs +++ b/src/mods/clone.rs @@ -5,6 +5,7 @@ use crate::{ use git2::Repository; use moins::Moins; use std::{env, fs, path::Path, process::Command}; +use raur::SearchBy::Name; fn uninstall_make_depend(pkg: &str) { let make_depends = raur::info(&[&pkg]).unwrap()[0].make_depends.clone(); @@ -27,7 +28,7 @@ pub fn clone(noconfirm: bool, pkg: &str) { let cachedir = format!("{}/.cache/ame", std::env::var("HOME").unwrap()); let path = Path::new(&cachedir); let pkgdir = format!("{}/{}", &cachedir, &pkg); - let results = raur::search(&pkg).unwrap(); + let results = raur::search_by(format!("^{}$", &pkg), Name).unwrap(); if results.len() == 0 { err_unrec(format!("No matching AUR packages found")); diff --git a/src/mods/inssort.rs b/src/mods/inssort.rs index 3b17033..cbc656e 100644 --- a/src/mods/inssort.rs +++ b/src/mods/inssort.rs @@ -1,5 +1,6 @@ use crate::{clone, err_unrec, install, mods::strs::sec}; use std::process::{Command, Stdio}; +use raur::SearchBy::Name; pub fn inssort(noconfirm: bool, pkgs: Vec) { let mut repo = vec![]; @@ -7,7 +8,7 @@ pub fn inssort(noconfirm: bool, pkgs: Vec) { for pkg in pkgs { let out = Command::new("pacman") .arg("-Ss") - .arg(&pkg) + .arg(format!("^{}$", &pkg)) .stdout(Stdio::null()) .status() .expect("Something has gone wrong."); @@ -25,7 +26,12 @@ pub fn inssort(noconfirm: bool, pkgs: Vec) { } for a in aur { - sec(format!("Installing AUR package: {}", a)); - clone(noconfirm, &a); + let sea = raur::search_by(format!("^{}$", a), Name).unwrap(); + if sea.len() == 0 { + err_unrec(format!("No matching packages found")) + } else { + sec(format!("Installing AUR package: {}", a)); + clone(noconfirm, &a); + } } }