now able to install packages from a specific repo by appending the repo to the package ( community/neofetch or aur/nofetch-git )

i18n
amy 3 years ago
parent 50864e05ad
commit 47b16a7f90

@ -1,6 +1,6 @@
[package]
name = "ame"
version = "0.0.0"
version = "2.4.1"
authors = [ "jnats <jnats@salyut.one>", "axtlos <axtlos@salyut.one>" ]
edition = "2018"
description = "a fast and efficient aur helper."

@ -8,37 +8,62 @@ pub fn inssort(noconfirm: bool, as_dep: bool, pkgs: Vec<String>) {
let re = Regex::new(r"(\S+)((?:>=|<=)\S+$)").unwrap();
let reg = Regex::new(r"((?:>=|<=)\S+$)").unwrap();
for pkg in pkgs {
let caps = re.captures(&pkg);
match caps {
Some(_) => {
let out = Command::new("pacman")
.arg("-Ss")
.arg(format!(
"^{}$",
caps.unwrap().get(1).map_or("", |m| m.as_str())
))
.stdout(Stdio::null())
.status()
.expect("Something has gone wrong.");
match out.code() {
Some(0) => repo.push(reg.replace_all(&pkg, "").to_string()),
Some(1) => aur.push(pkg),
Some(_) => err_unrec(format!("Something has gone terribly wrong")),
None => err_unrec(format!("Process terminated")),
match pkg.contains("/") {
true => {
match pkg.split("/").collect::<Vec<&str>>()[0] == "aur" {
true => {
aur.push(pkg.split("/").collect::<Vec<&str>>()[1].to_string());
}
false => {
let out = Command::new("bash")
.arg("-c")
.arg(format!("pacman -Sl {} | grep {}", pkg.split("/").collect::<Vec<&str>>()[0],pkg.split("/").collect::<Vec<&str>>()[1]))
.stdout(Stdio::null())
.status()
.expect("Something has gone wrong.");
match out.code() {
Some(0) => repo.push(reg.replace_all(&pkg, "").to_string()),
Some(1) => err_unrec(format!("Package {} not found in repository {}", pkg.split("/").collect::<Vec<&str>>()[1],pkg.split("/").collect::<Vec<&str>>()[0])),
Some(_) => err_unrec(format!("Something has gone terribly wrong")),
None => err_unrec(format!("Process terminated")),
}
}
}
}
None => {
let out = Command::new("pacman")
.arg("-Ss")
.arg(format!("^{}$", &pkg))
.stdout(Stdio::null())
.status()
.expect("Something has gone wrong.");
match out.code() {
Some(0) => repo.push(pkg),
Some(1) => aur.push(pkg),
Some(_) => err_unrec(format!("Something has gone terribly wrong")),
None => err_unrec(format!("Process terminated")),
false => {
let caps = re.captures(&pkg);
match caps {
Some(_) => {
let out = Command::new("pacman")
.arg("-Ss")
.arg(format!(
"^{}$",
caps.unwrap().get(1).map_or("", |m| m.as_str())
))
.stdout(Stdio::null())
.status()
.expect("Something has gone wrong.");
match out.code() {
Some(0) => repo.push(reg.replace_all(&pkg, "").to_string()),
Some(1) => aur.push(pkg),
Some(_) => err_unrec(format!("Something has gone terribly wrong")),
None => err_unrec(format!("Process terminated")),
}
}
None => {
let out = Command::new("pacman")
.arg("-Ss")
.arg(format!("^{}$", &pkg))
.stdout(Stdio::null())
.status()
.expect("Something has gone wrong.");
match out.code() {
Some(0) => repo.push(pkg),
Some(1) => aur.push(pkg),
Some(_) => err_unrec(format!("Something has gone terribly wrong")),
None => err_unrec(format!("Process terminated")),
}
}
}
}
}

Loading…
Cancel
Save