From 785d8ea4cfbdc94d6f21e72e3323d7dbf234326e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Baylac=20Jacqu=C3=A9?= Date: Fri, 25 Aug 2023 22:09:25 +0200 Subject: [PATCH] Improve backup statistics display --- src/main.rs | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/main.rs b/src/main.rs index 340206e..eec2f5d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -74,15 +74,29 @@ fn main() { } fn display_backup_result(results: Vec>) { - let mut success: Vec = Vec::new(); + let mut nb_copy_exif: u32 = 0; + let mut nb_copy_filesystem: u32 = 0; + let mut nb_duplicates: u32 = 0; let mut failures: Vec = Vec::new(); results.into_iter().for_each(|e| match e { - Ok(s) => success.push(s), + Ok(s) => { + match s { + BackupSuccess::AlreadyBackup(_) => nb_duplicates +=1, + BackupSuccess::Backup(_, origin) => match origin { + PictureDatetimeOrigin::Exif => nb_copy_exif +=1, + PictureDatetimeOrigin::FilesystemMetadata => nb_copy_filesystem +=1 + } + } + }, Err(f) => failures.push(f) }); eprintln!("Backup Statistics:"); - eprintln!(""); - eprintln!("Success: {}", success.len()); + eprintln!("=================="); + eprintln!("Duplicates: {}", nb_duplicates); + eprintln!("Copied: {}", nb_copy_exif + nb_copy_filesystem); + eprintln!("To classify these newly copied files, we used:"); + eprintln!(" {}: EXIF metadata", nb_copy_exif); + eprintln!(" {}: filesystem metadata", nb_copy_filesystem); eprintln!("Failures: {}", failures.len()); if failures.len() != 0 { eprintln!(""); @@ -111,10 +125,8 @@ fn backup_file(cli: &CliArgs, file_path: &str) -> Result Ok(BackupSuccess::Backup( target_filename.into_os_string().into_string().unwrap(), origin)), - Err(_) => { - eprintln!("ERROR: cannot copy {} to {}", &filename.display(), &target_filename.display()); - Err(BackupFailure::CopyError(String::from(file_path))) - } + Err(_) => Err(BackupFailure::CopyError(String::from(file_path))) + } } else if same_files(filename, &target_filename) { Ok(BackupSuccess::AlreadyBackup(String::from(file_path)))