From 8d3e200306c15f442db6b3250828ceb198778bb1 Mon Sep 17 00:00:00 2001 From: Colin Rofls Date: Tue, 17 Sep 2024 14:38:28 -0400 Subject: [PATCH] Add logging support --- Cargo.toml | 2 ++ src/lib.rs | 20 ++++++++++++-------- src/main.rs | 1 + 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 114f4f2..17df465 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,3 +18,5 @@ ureq = "2.9.7" font-types = { version = "0.7", features= ["serde"] } thiserror = "1.0.37" serde_yaml = "0.9.14" +log = "0.4" +env_logger = "0.11" diff --git a/src/lib.rs b/src/lib.rs index 0ce3963..0c7b531 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -104,7 +104,7 @@ pub fn discover_sources( let have_repo = pruned_candidates(&candidates); - eprintln!( + log::info!( "checking {} repositories for config.yaml files", have_repo.len() ); @@ -116,13 +116,13 @@ pub fn discover_sources( }; if verbose { - eprintln!( + log::debug!( "{} of {} candidates have known repo url", have_repo.len(), candidates.len() ); - eprintln!( + log::debug!( "{} of {} have sources/config.yaml", has_config_files.len(), have_repo.len() @@ -295,7 +295,7 @@ fn find_config_files( seen += 1; } Err(e) => { - eprintln!("channel error: '{e}'"); + log::error!("channel error: '{e}'"); break; } } @@ -366,7 +366,7 @@ fn config_file_from_remote_naive(repo_url: &str) -> Result return Ok(filename.into()), Ok(resp) => { // seems very unlikely but it feels bad to just skip this branch? - eprintln!("unexpected response code for {repo_url}: {}", resp.status()); + log::warn!("unexpected response code for {repo_url}: {}", resp.status()); } Err(ureq::Error::Status(404, _)) => (), Err(ureq::Error::Status(429, resp)) => { @@ -431,7 +431,7 @@ fn get_config_paths(font_dir: &Path) -> Option> { fn get_candidates_from_remote(verbose: bool) -> BTreeSet { let tempdir = tempfile::tempdir().unwrap(); if verbose { - eprintln!("cloning {GF_REPO_URL} to {}", tempdir.path().display()); + log::info!("cloning {GF_REPO_URL} to {}", tempdir.path().display()); } clone_repo(GF_REPO_URL, tempdir.path()) .unwrap_or_die(|e| eprintln!("failed to checkout {GF_REPO_URL}: '{e}'")); @@ -441,7 +441,7 @@ fn get_candidates_from_remote(verbose: bool) -> BTreeSet { fn get_candidates_from_local_checkout(path: &Path, verbose: bool) -> BTreeSet { let ofl_dir = path.join("ofl"); if verbose { - eprintln!("searching for candidates in {}", ofl_dir.display()); + log::debug!("searching for candidates in {}", ofl_dir.display()); } let mut result = BTreeSet::new(); for font_dir in iter_ofl_subdirectories(&ofl_dir) { @@ -449,7 +449,7 @@ fn get_candidates_from_local_checkout(path: &Path, verbose: bool) -> BTreeSet metadata, Err(e) => { if verbose { - eprintln!("no metadata for font {}: '{}'", font_dir.display(), e); + log::warn!("no metadata for font {}: '{}'", font_dir.display(), e); } continue; } @@ -512,6 +512,10 @@ fn checkout_rev(repo_dir: &Path, rev: &str) -> Result { if left.starts_with(right) { return Ok(true); } + log::info!( + "repo {} needs fetch for {rev} (at {sha})", + repo_dir.display() + ); // checkouts might be shallow, so unshallow before looking for a rev: let _ = std::process::Command::new("git") .current_dir(repo_dir) diff --git a/src/main.rs b/src/main.rs index d4ca881..2db11d3 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,6 +3,7 @@ use clap::Parser; use google_fonts_sources::Args; fn main() { + env_logger::init(); let args = Args::parse(); google_fonts_sources::run(&args); }