display total size of added files before copying

This commit is contained in:
Mark 2024-09-21 18:07:12 +02:00
parent 6566b42697
commit e535e5fcfd

View File

@ -101,34 +101,34 @@ fn main() {
} }
} }
eprintln!(" - - - - -"); eprintln!(" - - - - -");
eprintln!( let add_dir_count = changes
" >> add directory | {}x",
changes
.iter() .iter()
.filter(|c| matches!(c, IndexChange::AddDir(..))) .filter(|c| matches!(c, IndexChange::AddDir(..)))
.count() .count();
); eprintln!(" >> add directory | {add_dir_count}x");
eprintln!( let (add_file_count, add_file_total_size_gib) = changes
" + add/update file | {}x",
changes
.iter() .iter()
.filter(|c| matches!(c, IndexChange::AddFile(..))) .filter_map(|c| {
.count() if let IndexChange::AddFile(_, f) = c {
); Some(f)
eprintln!( } else {
" - remove file | {}x", None
changes }
})
.fold((0, 0.0f64), |(c, s), f| {
(c + 1, s + f.size as f64 / (1024 * 1024 * 1024) as f64)
});
eprintln!(" + add/update file | {add_file_count}x ({add_file_total_size_gib:.1} GiB)");
let remove_file_count = changes
.iter() .iter()
.filter(|c| matches!(c, IndexChange::RemoveFile(..))) .filter(|c| matches!(c, IndexChange::RemoveFile(..)))
.count() .count();
); eprintln!(" - remove file | {}x", remove_file_count);
eprintln!( let remove_dir_count = changes
" [-] remove directory (and all contents!) | {}x",
changes
.iter() .iter()
.filter(|c| matches!(c, IndexChange::RemoveDir(..))) .filter(|c| matches!(c, IndexChange::RemoveDir(..)))
.count() .count();
); eprintln!(" [-] remove directory (and all contents!) | {remove_dir_count}x");
// apply changes after confirming // apply changes after confirming
if !args.noconfirm { if !args.noconfirm {
loop { loop {