From 1fb960c1c6a4149f281ba9670b7faabe612321e5 Mon Sep 17 00:00:00 2001 From: TheHolyTachanka Date: Sun, 19 Feb 2023 18:42:50 +0200 Subject: [PATCH 1/6] added flag to disable nix --- src/lib.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/lib.rs b/src/lib.rs index 1499eec..84f70eb 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -131,6 +131,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(); 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 @@ -176,7 +177,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") { + if check_if_command_exists("nix-store") || !args.contains(&"--no-nix".to_owned()) || !args.contains(&"-n".to_owned()) { run_and_count_lines( "nix-store", &["-q", "--requisites", "/run/current-system/sw"], From 79f6aa4c5757307025ced352bc22e52135613a75 Mon Sep 17 00:00:00 2001 From: TheHolyTachanka Date: Sun, 19 Feb 2023 19:57:37 +0200 Subject: [PATCH 2/6] 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())), From f0171701fae7d839fa20c222773fc5f2e40da916 Mon Sep 17 00:00:00 2001 From: TheHolyTachanka Date: Sun, 19 Feb 2023 20:40:26 +0200 Subject: [PATCH 3/6] Renamed skip_slow to skip_slow_package_managers --- src/lib.rs | 4 ++-- src/main.rs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index bcf8e11..e76dac2 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, skip_slow: bool) -> usize { +pub fn total_packages(package_readout: &PackageReadout, skip_slow_package_managers: bool) -> usize { match env::consts::OS { "linux" => { let macchina_package_count: Vec<(String, usize)> = package_readout @@ -130,7 +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)], skip_slow: bool) -> usize { +fn packages(pkg_manager: &PackageManager, macchina_package_count: &[(String, usize)], skip_slow_package_managers: 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 diff --git a/src/main.rs b/src/main.rs index 9f81cdb..5c69ebd 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, skip_slow: bool) -> Option { +fn get_info(info: &PfetchInfo, readouts: &Readouts, skip_slow_package_managers: bool) -> Option { match info { PfetchInfo::Ascii => None, PfetchInfo::Title => { @@ -200,7 +200,7 @@ fn main() { 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 skip_slow = dotenvy::var("PF_FAST_PKG_COUNT").is_ok(); let enabled_pf_info_base: Vec = match dotenvy::var("PF_INFO") { Ok(pfetch_infos) => pfetch_infos From fc665ce95696808691ebf46cae4f259efc9b0db0 Mon Sep 17 00:00:00 2001 From: TheHolyTachanka Date: Sun, 19 Feb 2023 20:41:32 +0200 Subject: [PATCH 4/6] fixed issue(im dumb) --- src/lib.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index e76dac2..6385d48 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -97,7 +97,7 @@ pub fn total_packages(package_readout: &PackageReadout, skip_slow_package_manage PackageManager::Nix, ] .iter() - .map(|mngr| packages(mngr, &macchina_package_count, skip_slow)) + .map(|mngr| packages(mngr, &macchina_package_count, skip_slow_package_managers)) .sum() } "macos" => package_readout @@ -176,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") && !skip_slow { + if check_if_command_exists("nix-store") && !skip_slow_package_managers { run_and_count_lines( "nix-store", &["-q", "--requisites", "/run/current-system/sw"], From c2b4ca43fdd682f71a58d2bf4abebf13ec75bbae Mon Sep 17 00:00:00 2001 From: TheHolyTachanka Date: Sun, 19 Feb 2023 20:42:11 +0200 Subject: [PATCH 5/6] fixed issue(again) --- src/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 5c69ebd..bdcbf5a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -174,7 +174,7 @@ fn get_info(info: &PfetchInfo, readouts: &Readouts, skip_slow_package_managers: 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, skip_slow).to_string()), + PfetchInfo::Pkgs => Some(pfetch::total_packages(&readouts.package_readout, skip_slow_package_managers).to_string()), PfetchInfo::Memory => pfetch::memory(&readouts.memory_readout), PfetchInfo::Shell => match dotenvy::var("SHELL") { Ok(shell) => Some(shell), From 8143dc9a4de1ac2bf93ce6c42fb567171ec17127 Mon Sep 17 00:00:00 2001 From: TheHolyTachanka Date: Sun, 19 Feb 2023 20:49:40 +0200 Subject: [PATCH 6/6] renamed skip_slow --- src/lib.rs | 8 ++++---- src/main.rs | 6 +++--- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 6385d48..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, skip_slow_package_managers: bool) -> 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, skip_slow_package_manage PackageManager::Nix, ] .iter() - .map(|mngr| packages(mngr, &macchina_package_count, skip_slow_package_managers)) + .map(|mngr| packages(mngr, &macchina_package_count, skip_slow)) .sum() } "macos" => package_readout @@ -130,7 +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)], skip_slow_package_managers: bool) -> usize { +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 @@ -176,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") && !skip_slow_package_managers { + 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 bdcbf5a..17236c3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -200,7 +200,7 @@ fn main() { dotenvy::from_path(filepath).unwrap(); } // Check if SKIP_SLOW is enabled - let skip_slow = dotenvy::var("PF_FAST_PKG_COUNT").is_ok(); + let skip_slow_package_managers = dotenvy::var("PF_FAST_PKG_COUNT").is_ok(); let enabled_pf_info_base: Vec = match dotenvy::var("PF_INFO") { Ok(pfetch_infos) => pfetch_infos @@ -244,7 +244,7 @@ fn main() { kernel_readout: KernelReadout::new(), }; - let os = get_info(&PfetchInfo::Os, &readouts, skip_slow).unwrap_or_default(); + let os = get_info(&PfetchInfo::Os, &readouts, skip_slow_package_managers).unwrap_or_default(); let logo_override = env::var("PF_ASCII"); @@ -271,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, skip_slow); + let info_result = get_info(info, &readouts, skip_slow_package_managers); match info_result { Some(info_str) => match info { PfetchInfo::Title => Some((logo.secondary_color, info_str, "".to_string())),