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::commands::ShellCommand;
use crate::internal::error::SilentUnwrap; use crate::internal::error::SilentUnwrap;
use crate::internal::exit_code::AppExitCode; use crate::internal::exit_code::AppExitCode;
use crate::{prompt, warn}; use crate::{prompt, warn, info};
pub fn detect() { pub fn detect() {
info!("Scanning for pacnew files");
let mut pacnew = vec![]; let mut pacnew = vec![];
// Detect pacnew files // Run `find` to find pacnew files and split by lines into a vec
for entry in std::fs::read_dir("/etc").unwrap() { let find = std::process::Command::new("sudo")
let entry = entry.unwrap(); .arg("pacdiff")
let path = entry.path(); .arg("-f")
if path.to_str().unwrap().contains(".pacnew") || path.to_str().unwrap().contains(".pacsave") .output()
{ .unwrap();
// If found, push to vector let find_lines = std::str::from_utf8(&find.stdout).unwrap().split("\n");
pacnew.push(path); 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"]) .args(&["--color", "never"])
.wait_with_output() .wait_with_output()
.silent_unwrap(AppExitCode::PacmanError); .silent_unwrap(AppExitCode::PacmanError);
// Collect by lines to a Vec<String>
let mut non_native = non_native.stdout.split('\n').collect::<Vec<&str>>(); let mut non_native = non_native.stdout.split('\n').collect::<Vec<&str>>();
// Remove last element, which is an empty line
non_native.pop(); non_native.pop();
// Parse non-native packages into a Vec<QueriedPackage> // Parse non-native packages into a Vec<QueriedPackage>
let mut parsed_non_native: Vec<QueriedPackage> = vec![]; let mut parsed_non_native: Vec<QueriedPackage> = vec![];
for pkg in non_native { for pkg in non_native {
// Split by space
let split = pkg.split(' ').collect::<Vec<&str>>(); let split = pkg.split(' ').collect::<Vec<&str>>();
if verbosity >= 1 { if verbosity >= 1 {
log!("{:?}", split); log!("{:?}", split);
} }
// Create QueriedPackage and push it to parsed_non_native
let name = split[0].to_string(); let name = split[0].to_string();
let version = split[1].to_string(); let version = split[1].to_string();
parsed_non_native.push(QueriedPackage { name, version }); parsed_non_native.push(QueriedPackage { name, version });

Loading…
Cancel
Save