merged
authorHeiko Schlittermann (JUMPER) <hs@schlittermann.de>
Fri, 29 Apr 2011 17:42:18 +0200
changeset 75 d03eed2bb68a
parent 74 e533b6f71249 (current diff)
parent 66 e0bf36e68caf (diff)
child 76 70f544c3831a
merged
--- 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) {
         /^(?<date>.*)\.(?<level>\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] } }