betterized pacdiff

i18n
Michal 2 years ago
parent 3474b26db0
commit f54df88c29
No known key found for this signature in database
GPG Key ID: A6A1A4DCB22279B9

@ -1,19 +1,23 @@
use crate::internal::commands::ShellCommand;
use crate::internal::error::SilentUnwrap;
use crate::internal::exit_code::AppExitCode;
use crate::{prompt, warn};
use crate::{prompt, warn, info};
pub fn detect() {
info!("Scanning for pacnew files");
let mut pacnew = vec![];
// Detect pacnew files
for entry in std::fs::read_dir("/etc").unwrap() {
let entry = entry.unwrap();
let path = entry.path();
if path.to_str().unwrap().contains(".pacnew") || path.to_str().unwrap().contains(".pacsave")
{
// If found, push to vector
pacnew.push(path);
// Run `find` to find pacnew files and split by lines into a vec
let find = std::process::Command::new("sudo")
.arg("pacdiff")
.arg("-f")
.output()
.unwrap();
let find_lines = std::str::from_utf8(&find.stdout).unwrap().split("\n");
for line in find_lines {
if line.len() > 0 {
pacnew.push(line.to_string());
}
}

@ -58,16 +58,22 @@ pub fn upgrade(options: Options) {
.args(&["--color", "never"])
.wait_with_output()
.silent_unwrap(AppExitCode::PacmanError);
// Collect by lines to a Vec<String>
let mut non_native = non_native.stdout.split('\n').collect::<Vec<&str>>();
// Remove last element, which is an empty line
non_native.pop();
// Parse non-native packages into a Vec<QueriedPackage>
let mut parsed_non_native: Vec<QueriedPackage> = vec![];
for pkg in non_native {
// Split by space
let split = pkg.split(' ').collect::<Vec<&str>>();
if verbosity >= 1 {
log!("{:?}", split);
}
// Create QueriedPackage and push it to parsed_non_native
let name = split[0].to_string();
let version = split[1].to_string();
parsed_non_native.push(QueriedPackage { name, version });

Loading…
Cancel
Save