From f6a6ccbe37f76a80b6e55bc18d61782a93e4468d Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Mon, 16 May 2022 01:25:52 +0100 Subject: [PATCH] cli bundle progress: Collect local zipfile members in a vec This will let us easily count them, which we want to do for progress reporting. Signed-off-by: Ian Jackson --- cli/usebundles.rs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/cli/usebundles.rs b/cli/usebundles.rs index 0f61bd76..b3901497 100644 --- a/cli/usebundles.rs +++ b/cli/usebundles.rs @@ -42,7 +42,8 @@ impl BundleForUpload { let f = File::open(&file).context("open")?; Self::prepare_open_file(&file, progress, f)? } else { - Self::prepare_from_dir(&file, progress, walk)? + let entries = walk.collect::,_>>()?; + Self::prepare_from_dir(&file, progress, entries)? } } @@ -84,16 +85,13 @@ impl BundleForUpload { } #[throws(AE)] - pub fn prepare_from_dir(dir: &str, progress: &mut termprogress::Nest, - walk: W) -> Self - where W: Iterator> - { + pub fn prepare_from_dir(dir: &str, progress: &mut termprogress::Nest, + entries: Vec) -> Self { let zipfile = tempfile::tempfile().context("create tmp zipfile")?; let zipfile = BufWriter::new(zipfile); let mut zipfile = zipfile::ZipWriter::new(zipfile); - for ent in walk { - let ent = ent?; + for ent in entries { if ent.file_type().is_dir() { continue } let tail = { -- 2.30.2