You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
amethyst/src/internal/sort.rs

50 lines
1.2 KiB
Rust

use crate::internal::{rpc, structs};
use std::process::{Command, Stdio};
pub fn sort(a: &[String], verbosity: i32) -> structs::Sorted {
#[allow(unused_mut)]
let mut repo: Vec<String> = vec![];
let mut aur: Vec<String> = vec![];
let mut nf: Vec<String> = vec![];
match verbosity {
0 => {}
1 => {
eprintln!("Sorting:");
eprintln!("{:?}", a);
}
_ => {
eprintln!("Sorting:");
for b in a {
eprintln!("{:?}", b);
}
}
}
for b in a {
let out = Command::new("pacman")
.arg("-Ss")
.arg(format!("^{}$", &b))
.stdout(Stdio::null())
.status()
.expect("Something has gone wrong.");
if let Some(0) = out.code() {
repo.push(b.to_string());
}
if rpc::rpcinfo(b.to_string()).found {
if verbosity >= 1 {
eprintln!("{} found in AUR.", b);
}
aur.push(b.to_string());
} else {
if verbosity >= 1 {
eprintln!("{} not found.", b);
}
nf.push(b.to_string());
}
}
structs::Sorted::new(repo, aur, nf)
}