From a8c8366cfa32dfbe182beab2085a23df41deb82f Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Fri, 6 Dec 2019 08:12:08 +0100 Subject: [PATCH] src/backup/prune.rs: factor out code into remove_incomplete_snapshots() --- src/backup/prune.rs | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/backup/prune.rs b/src/backup/prune.rs index 758890f6..464e3cc2 100644 --- a/src/backup/prune.rs +++ b/src/backup/prune.rs @@ -45,20 +45,11 @@ fn mark_selections, &BackupInfo) -> String> ( } } -pub fn compute_prune_info( - mut list: Vec, - keep_last: Option, - keep_daily: Option, - keep_weekly: Option, - keep_monthly: Option, - keep_yearly: Option, -) -> Result, Error> { +fn remove_incomplete_snapshots( + mark: &mut HashMap, + list: &Vec, +) { - let mut mark = HashMap::new(); - - BackupInfo::sort_list(&mut list, false); - - // remove inclomplete snapshots let mut keep_unfinished = true; for info in list.iter() { // backup is considered unfinished if there is no manifest @@ -76,6 +67,22 @@ pub fn compute_prune_info( keep_unfinished = false; } } +} + +pub fn compute_prune_info( + mut list: Vec, + keep_last: Option, + keep_daily: Option, + keep_weekly: Option, + keep_monthly: Option, + keep_yearly: Option, +) -> Result, Error> { + + let mut mark = HashMap::new(); + + BackupInfo::sort_list(&mut list, false); + + remove_incomplete_snapshots(&mut mark, &list); if let Some(keep_last) = keep_last { mark_selections(&mut mark, &list, keep_last as usize, |_local_time, info| {