From 81837d01982a41cd75e474f9b2aeaa863bf8ea05 Mon Sep 17 00:00:00 2001 From: Wildan M Date: Sun, 8 Feb 2026 13:19:08 +0700 Subject: [PATCH] Make build stats count missing build --- src/bin/repo.rs | 34 ++++++++++++++++++++++++---------- src/cook/tree.rs | 10 ++++++++-- 2 files changed, 32 insertions(+), 12 deletions(-) diff --git a/src/bin/repo.rs b/src/bin/repo.rs index 1fc91fdb..6b406cd1 100644 --- a/src/bin/repo.rs +++ b/src/bin/repo.rs @@ -841,16 +841,30 @@ fn handle_tree( } println!(""); - println!( - "Estimated image size: {} of {} {}", - tree::format_size(total_size), - visited.len(), - if visited.len() == 1 { - "package" - } else { - "packages" - }, - ); + if is_build_tree { + println!( + "Build summary: {} need build, {} may rebuild, with total of {} {}", + total_size, + roots.len(), + visited.len(), + if visited.len() == 1 { + "recipe" + } else { + "recipes" + }, + ); + } else { + println!( + "Estimated image size: {} of {} {}", + tree::format_size(total_size), + visited.len(), + if visited.len() == 1 { + "package" + } else { + "packages" + }, + ); + } Ok(()) } diff --git a/src/cook/tree.rs b/src/cook/tree.rs index cf6eec5c..f4bb935d 100644 --- a/src/cook/tree.rs +++ b/src/cook/tree.rs @@ -72,8 +72,14 @@ pub fn walk_tree_entry( } visited.insert(package_name.clone()); - if let WalkTreeEntry::Built(_p, pkg_size) = &entry { - *total_size += pkg_size; + if is_build_tree { + if matches!(entry, WalkTreeEntry::NotBuilt) { + *total_size += 1; + } + } else { + if let WalkTreeEntry::Built(_p, pkg_size) = &entry { + *total_size += pkg_size; + } } let pkg_meta: Package;