# HG changeset patch # User Heiko Schlittermann (CTQ.kx.schlittermann.de) # Date 1304091673 -7200 # Node ID e0bf36e68caf28269cf4cd61ea2f2daacb807634 # Parent 6cdc52ab8a084a36b48b0abbbf3f3559c93e866c fixed ugly complaints at initial start diff -r 6cdc52ab8a08 -r e0bf36e68caf bin/ftbackup --- a/bin/ftbackup Fri Apr 29 16:25:17 2011 +0200 +++ b/bin/ftbackup Fri Apr 29 17:41:13 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] } }