diff --git a/cli/src/filterer/common.rs b/cli/src/filterer/common.rs index 1bec3c5..6c189ba 100644 --- a/cli/src/filterer/common.rs +++ b/cli/src/filterer/common.rs @@ -34,16 +34,25 @@ pub async fn dirs(args: &ArgMatches<'static>) -> Result<(PathBuf, PathBuf)> { Ok((project_origin, workdir)) } -pub async fn ignores(args: &ArgMatches<'static>, origin: &Path) -> Result> { +pub async fn vcs_types(origin: &Path) -> Vec { let vcs_types = project::types(origin) .await .into_iter() .filter(|pt| pt.is_vcs()) .collect::>(); debug!(?vcs_types, "resolved vcs types"); + vcs_types +} - let (mut ignores, _errors) = ignore::from_origin(origin).await; - // TODO: handle errors +pub async fn ignores( + args: &ArgMatches<'static>, + vcs_types: &[ProjectType], + origin: &Path, +) -> Result> { + let (mut ignores, errors) = ignore::from_origin(origin).await; + for err in errors { + warn!("while discovering project-local ignore files: {}", err); + } debug!(?ignores, "discovered ignore files from project origin"); // TODO: use drain_ignore instead for x = x.filter()... when that stabilises @@ -71,8 +80,10 @@ pub async fn ignores(args: &ArgMatches<'static>, origin: &Path) -> Result, origin: &Path) -> Result) -> Result> { let (project_origin, workdir) = super::common::dirs(args).await?; - let ignores = super::common::ignores(args, &project_origin).await?; + let vcs_types = super::common::vcs_types(&project_origin).await; + let ignores = super::common::ignores(args, &vcs_types, &project_origin).await?; let filterer = TaggedFilterer::new(project_origin, workdir.clone())?; @@ -34,8 +36,10 @@ pub async fn tagged(args: &ArgMatches<'static>) -> Result> { debug!(?filter_files, "resolved command filter files"); if !args.is_present("no-global-filters") { - // TODO: handle errors - let (global_filter_files, _errors) = files::from_environment().await; + let (global_filter_files, errors) = files::from_environment().await; + for err in errors { + warn!("while discovering project-local filter files: {}", err); + } debug!(?global_filter_files, "discovered global filter files"); filter_files.extend(global_filter_files); }