From 257e01155501e3f93ed218f3853156a030b20c58 Mon Sep 17 00:00:00 2001 From: morganamilo Date: Wed, 19 Apr 2023 12:02:25 +0100 Subject: [PATCH] Respect no_warn in more places Fixes #936 --- src/devel.rs | 9 ++++++++- src/download.rs | 38 +++++++++++++++++++++++++++++++------- src/info.rs | 4 +++- src/stats.rs | 11 +++++++++-- 4 files changed, 51 insertions(+), 11 deletions(-) diff --git a/src/devel.rs b/src/devel.rs index 5b06ae84..91abed85 100644 --- a/src/devel.rs +++ b/src/devel.rs @@ -147,7 +147,14 @@ pub async fn gendb(config: &mut Config) -> Result<()> { bold.paint(tr!("Querying AUR...")) ); } - let warnings = cache_info_with_warnings(&config.raur, &mut config.cache, &aur, ignore).await?; + let warnings = cache_info_with_warnings( + &config.raur, + &mut config.cache, + &aur, + ignore, + &config.no_warn, + ) + .await?; warnings.all(config.color, config.cols); let bases = Bases::from_iter(warnings.pkgs); diff --git a/src/download.rs b/src/download.rs index 2cf46572..60c12d48 100644 --- a/src/download.rs +++ b/src/download.rs @@ -17,6 +17,7 @@ use ansi_term::Style; use anyhow::{bail, ensure, Context, Result}; use aur_depends::AurBase; use aur_fetch::Repo; +use globset::GlobSet; use indicatif::{ProgressBar, ProgressStyle}; use kuchiki::traits::*; use raur::{ArcPackage as Package, Raur}; @@ -135,6 +136,7 @@ pub async fn cache_info_with_warnings<'a, S: AsRef + Send + Sync>( cache: &'a mut raur::Cache, pkgs: &'a [S], ignore: &[String], + no_warn: &GlobSet, ) -> StdResult, raur::Error> { let mut missing = Vec::new(); let mut ood = Vec::new(); @@ -144,13 +146,16 @@ pub async fn cache_info_with_warnings<'a, S: AsRef + Send + Sync>( aur_pkgs.retain(|pkg1| pkgs.iter().any(|pkg2| pkg1.name == pkg2.as_ref())); for pkg in pkgs { - if !ignore.iter().any(|p| p == pkg.as_ref()) && !cache.contains(pkg.as_ref()) { + if !no_warn.is_match(pkg.as_ref()) + && !ignore.iter().any(|p| p == pkg.as_ref()) + && !cache.contains(pkg.as_ref()) + { missing.push(pkg.as_ref()) } } for pkg in &aur_pkgs { - if !ignore.iter().any(|p| p.as_str() == pkg.name) { + if no_warn.is_match(&pkg.name) && !ignore.iter().any(|p| p.as_str() == pkg.name) { if pkg.out_of_date.is_some() { ood.push(cache.get(pkg.name.as_str()).unwrap().name.as_str()); } @@ -194,8 +199,14 @@ pub async fn getpkgbuilds(config: &mut Config) -> Result { action.paint("::"), bold.paint(tr!("Querying AUR...")) ); - let warnings = - cache_info_with_warnings(&config.raur, &mut config.cache, &aur, &config.ignore).await?; + let warnings = cache_info_with_warnings( + &config.raur, + &mut config.cache, + &aur, + &config.ignore, + &GlobSet::empty(), + ) + .await?; ret |= !warnings.missing.is_empty() as i32; warnings.missing(config.color, config.cols); let aur = warnings.pkgs; @@ -447,8 +458,14 @@ pub async fn new_aur_pkgbuilds( pub async fn show_comments(config: &mut Config) -> Result { let client = config.raur.client(); - let warnings = - cache_info_with_warnings(&config.raur, &mut config.cache, &config.targets, &[]).await?; + let warnings = cache_info_with_warnings( + &config.raur, + &mut config.cache, + &config.targets, + &[], + &GlobSet::empty(), + ) + .await?; warnings.missing(config.color, config.cols); let ret = !warnings.missing.is_empty() as i32; let bases = Bases::from_iter(warnings.pkgs); @@ -616,7 +633,14 @@ pub async fn show_pkgbuilds(config: &mut Config) -> Result { let client = config.raur.client(); let aur = aur.iter().map(|t| t.pkg).collect::>(); - let warnings = cache_info_with_warnings(&config.raur, &mut config.cache, &aur, &[]).await?; + let warnings = cache_info_with_warnings( + &config.raur, + &mut config.cache, + &aur, + &[], + &GlobSet::empty(), + ) + .await?; warnings.missing(config.color, config.cols); let ret = !warnings.missing.is_empty() as i32; let bases = Bases::from_iter(warnings.pkgs); diff --git a/src/info.rs b/src/info.rs index 907fac94..f53409bf 100644 --- a/src/info.rs +++ b/src/info.rs @@ -12,6 +12,7 @@ use alpm_utils::Targ; use ansi_term::Style; use anyhow::Error; use aur_depends::Repo; +use globset::GlobSet; use raur::ArcPackage as Package; use srcinfo::{ArchVec, Srcinfo}; use term_size::dimensions_stdout; @@ -57,7 +58,8 @@ pub async fn info(conf: &mut Config, verbose: bool) -> Result { let color = conf.color; let aur = aur.iter().map(|t| t.pkg).collect::>(); let warnings = - cache_info_with_warnings(&conf.raur, &mut conf.cache, &aur, &conf.ignore).await?; + cache_info_with_warnings(&conf.raur, &mut conf.cache, &aur, &[], &GlobSet::empty()) + .await?; for pkg in &warnings.missing { eprintln!( "{} {}", diff --git a/src/stats.rs b/src/stats.rs index b7dd7945..ed52b68a 100644 --- a/src/stats.rs +++ b/src/stats.rs @@ -4,6 +4,7 @@ use crate::printtr; use crate::util::repo_aur_pkgs; use alpm::PackageReason; +use globset::GlobSet; use std::cmp::Reverse; use std::collections::BinaryHeap; @@ -73,8 +74,14 @@ pub async fn stats(config: &Config) -> Result { .map(|s| s.to_owned()) .collect::>(); - let warnings = - cache_info_with_warnings(&config.raur, &mut cache, &aur_packages, &config.ignore).await?; + let warnings = cache_info_with_warnings( + &config.raur, + &mut cache, + &aur_packages, + &config.ignore, + &GlobSet::empty(), + ) + .await?; version(); print_line_separator(config);