# HG changeset patch # User Heiko Schlittermann (JUMPER) # Date 1304091738 -7200 # Node ID d03eed2bb68a8bd07538b306ab7903d10394e24b # Parent e533b6f7124960ee5e45588d6840ec0f35cc5e90# Parent e0bf36e68caf28269cf4cd61ea2f2daacb807634 merged diff -r e533b6f71249 -r d03eed2bb68a bin/ftbackup --- a/bin/ftbackup Fri Apr 29 17:42:04 2011 +0200 +++ b/bin/ftbackup Fri Apr 29 17:42:18 2011 +0200 @@ -573,20 +573,26 @@ sub unlink_old_dumps($$) { my ($ftp, $keep) = @_; my @dumps; + foreach ($ftp->ls) { /^(?.*)\.(?\d+)$/ or next; push @{ $dumps[$+{level}] } => { file => $_, date => $+{date}, stamp => str2time($+{date}) }; } + # sort the level 0 dumps by date and remove all but the last $keep # ones. # if we found level 0 dumps, we remove all level 1+ dumps older than # the oldest level 0 dump we'll remove - @{ $dumps[0] } = sort { $a->{stamp} <=> $b->{stamp} } @{ $dumps[0] }; + my @unlink; + + if ($dumps[0]) { + @{ $dumps[0] } = sort { $a->{stamp} <=> $b->{stamp} } @{ $dumps[0] }; + @unlink = splice(@{ $dumps[0] }, 0, -$keep); + } ### @dumps - my @unlink = splice(@{ $dumps[0] }, 0, -$keep); if ($dumps[1]) { if (!@{ $dumps[0] }) { push @unlink, @{ @dumps[1 .. $#dumps] } }