From 676519c58dbf4e229e0a4230c5d41ea35c12dadd Mon Sep 17 00:00:00 2001 From: Vincent de Phily Date: Fri, 23 Jun 2023 21:23:26 +0100 Subject: [PATCH] deps: Update `rev_lines` API changed, now iterates over a `Result` rather than a `String`, so we need to be a bit more explicit. Updating anstyle v1.0.0 -> v1.0.1 Updating rev_lines v0.2.2 -> v0.3.0 Adding thiserror v1.0.40 Adding thiserror-impl v1.0.40 --- Cargo.lock | 31 +++++++++++++++++++++++++++---- Cargo.toml | 2 +- src/parse/current.rs | 15 +++++++-------- 3 files changed, 35 insertions(+), 13 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index dfc62b5..18c13aa 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13,9 +13,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d" +checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" [[package]] name = "anyhow" @@ -392,9 +392,12 @@ checksum = "436b050e76ed2903236f032a59761c1eb99e1b0aead2c257922771dab1fc8c78" [[package]] name = "rev_lines" -version = "0.2.2" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af8297f87280eeeed2dea96a8eff55ddbb909a7cccc42be6087d29954068304d" +checksum = "ed62916ac7a5ccbf13fa5e1d303029ff015600fee841756dfc134a1ac62bf05f" +dependencies = [ + "thiserror", +] [[package]] name = "ryu" @@ -482,6 +485,26 @@ version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" +[[package]] +name = "thiserror" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.18", +] + [[package]] name = "time" version = "0.3.22" diff --git a/Cargo.toml b/Cargo.toml index dc041e5..d21e9dd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -26,7 +26,7 @@ env_logger = { version = "0.10.0", default-features = false } libc = { version = "0.2.126", default-features = false } log = "0.4.11" regex = { version = "1.3.9", default_features = false, features = ["std", "perf-inline", "perf-literal", "unicode-case"] } -rev_lines = "0.2.1" +rev_lines = "0.3.0" serde = { version = "1.0.147", features = ["derive"] } serde_json = "1.0.89" time = {version = "0.3.5", features = ["parsing", "formatting", "local-offset", "macros"]} diff --git a/src/parse/current.rs b/src/parse/current.rs index 0862fe6..287b774 100644 --- a/src/parse/current.rs +++ b/src/parse/current.rs @@ -95,17 +95,17 @@ pub fn get_buildlog(pkg: &Pkg, portdir: &str) -> Option { let name = format!("{}/portage/{}/temp/build.log", portdir, pkg.ebuild_version()); info!("Build log: {name}"); let file = File::open(&name).map_err(|e| warn!("Cannot open {name:?}: {e}")).ok()?; - read_buildlog(file, 50) + Some(read_buildlog(file, 50)) } -fn read_buildlog(file: File, max: usize) -> Option { +fn read_buildlog(file: File, max: usize) -> String { let mut last = String::new(); - for line in rev_lines::RevLines::new(BufReader::new(file)).ok()? { + for line in rev_lines::RevLines::new(BufReader::new(file)).map_while(Result::ok) { if line.starts_with(">>>") { let tag = line.split_ascii_whitespace().skip(1).take(2).collect::>().join(" "); if last.is_empty() { - return Some(format!(" ({})", tag.trim_matches('.'))); + return format!(" ({})", tag.trim_matches('.')); } else { - return Some(format!(" ({}: {})", tag.trim_matches('.'), last)); + return format!(" ({}: {})", tag.trim_matches('.'), last); } } if last.is_empty() { @@ -115,7 +115,7 @@ fn read_buildlog(file: File, max: usize) -> Option { } } } - Some(format!(" ({last})")) + format!(" ({last})") } #[cfg(test)] @@ -198,8 +198,7 @@ mod tests { ("build.log.color", 15, "Unpacking source: 0:57.55 Comp...")] { let f = File::open(&format!("tests/{file}")).expect(&format!("can't open {file:?}")); - let s = read_buildlog(f, lim).expect("failed to read_buildlog"); - assert_eq!(format!(" ({res})"), s); + assert_eq!(format!(" ({res})"), read_buildlog(f, lim)); } } }