From 79f6aa4c5757307025ced352bc22e52135613a75 Mon Sep 17 00:00:00 2001 From: TheHolyTachanka Date: Sun, 19 Feb 2023 19:57:37 +0200 Subject: [PATCH] remade the code to use dotenvy --- src/lib.rs | 9 ++++----- src/main.rs | 10 ++++++---- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 84f70eb..bcf8e11 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -73,7 +73,7 @@ pub enum PackageManager { /// Obtain the amount of installed packages on the system by checking all installed supported package /// managers and adding the amounts -pub fn total_packages(package_readout: &PackageReadout) -> usize { +pub fn total_packages(package_readout: &PackageReadout, skip_slow: bool) -> usize { match env::consts::OS { "linux" => { let macchina_package_count: Vec<(String, usize)> = package_readout @@ -97,7 +97,7 @@ pub fn total_packages(package_readout: &PackageReadout) -> usize { PackageManager::Nix, ] .iter() - .map(|mngr| packages(mngr, &macchina_package_count)) + .map(|mngr| packages(mngr, &macchina_package_count, skip_slow)) .sum() } "macos" => package_readout @@ -130,8 +130,7 @@ fn get_macchina_package_count( /// return the amount of packages installed with a given linux package manager /// Return `0` if the package manager is not installed -fn packages(pkg_manager: &PackageManager, macchina_package_count: &[(String, usize)]) -> usize { - let args: Vec = env::args().collect(); +fn packages(pkg_manager: &PackageManager, macchina_package_count: &[(String, usize)], skip_slow: bool) -> usize { match pkg_manager { // libmacchina has very fast implementations for most package managers, so we use them // where we can, otherwise we fall back to method used by dylans version of pfetch @@ -177,7 +176,7 @@ fn packages(pkg_manager: &PackageManager, macchina_package_count: &[(String, usi } // TODO: nix -q is very slow PackageManager::Nix => { - if check_if_command_exists("nix-store") || !args.contains(&"--no-nix".to_owned()) || !args.contains(&"-n".to_owned()) { + if check_if_command_exists("nix-store") && !skip_slow { run_and_count_lines( "nix-store", &["-q", "--requisites", "/run/current-system/sw"], diff --git a/src/main.rs b/src/main.rs index 9e1daf6..9f81cdb 100644 --- a/src/main.rs +++ b/src/main.rs @@ -152,7 +152,7 @@ struct Readouts { kernel_readout: KernelReadout, } -fn get_info(info: &PfetchInfo, readouts: &Readouts) -> Option { +fn get_info(info: &PfetchInfo, readouts: &Readouts, skip_slow: bool) -> Option { match info { PfetchInfo::Ascii => None, PfetchInfo::Title => { @@ -174,7 +174,7 @@ fn get_info(info: &PfetchInfo, readouts: &Readouts) -> Option { PfetchInfo::Host => pfetch::host(), PfetchInfo::Kernel => pfetch::kernel(&readouts.kernel_readout), PfetchInfo::Uptime => pfetch::uptime(&readouts.general_readout), - PfetchInfo::Pkgs => Some(pfetch::total_packages(&readouts.package_readout).to_string()), + PfetchInfo::Pkgs => Some(pfetch::total_packages(&readouts.package_readout, skip_slow).to_string()), PfetchInfo::Memory => pfetch::memory(&readouts.memory_readout), PfetchInfo::Shell => match dotenvy::var("SHELL") { Ok(shell) => Some(shell), @@ -199,6 +199,8 @@ fn main() { if let Ok(filepath) = dotenvy::var("PF_SOURCE") { dotenvy::from_path(filepath).unwrap(); } + // Check if SKIP_SLOW is enabled + let skip_slow = dotenvy::var("SKIP_SLOW").map_or(false, |val| val == "true"); let enabled_pf_info_base: Vec = match dotenvy::var("PF_INFO") { Ok(pfetch_infos) => pfetch_infos @@ -242,7 +244,7 @@ fn main() { kernel_readout: KernelReadout::new(), }; - let os = get_info(&PfetchInfo::Os, &readouts).unwrap_or_default(); + let os = get_info(&PfetchInfo::Os, &readouts, skip_slow).unwrap_or_default(); let logo_override = env::var("PF_ASCII"); @@ -269,7 +271,7 @@ fn main() { let gathered_pfetch_info: Vec<(pfetch::Color, String, String)> = enabled_pf_info .iter() .filter_map(|info| { - let info_result = get_info(info, &readouts); + let info_result = get_info(info, &readouts, skip_slow); match info_result { Some(info_str) => match info { PfetchInfo::Title => Some((logo.secondary_color, info_str, "".to_string())),