values ( (select id from archive where dvd_nr =?), ?, ?, ?)
});
-foreach my $arc (@archives_to_burn) {
- exit if ($arc eq ']quit[');
+my $copies = $Conf{BurnMultipleCopies} || 1;
- my $dvd_nr = $1 if ($arc =~ m/DVD #(\d+)/);
- die "BUG: can't find dvd_nr in $arc\n" unless ($dvd_nr);
+foreach my $copy_nr ( 1 .. $copies ) {
- my $tmp_dir = "/$iso_dir/$dvd_nr";
+ foreach my $arc (@archives_to_burn) {
+ exit if ($arc eq ']quit[');
- my $t = time();
+ my $dvd_nr = $1 if ($arc =~ m/DVD #(\d+)/);
+ die "BUG: can't find dvd_nr in $arc\n" unless ($dvd_nr);
- print "Working on DVD #$dvd_nr in $tmp_dir\n";
+ my $tmp_dir = "/$iso_dir/$dvd_nr";
- $sth_archive_backup_parts->execute($dvd_nr);
+ my $t = time();
- $sth_archive_backup_check->execute($dvd_nr);
+ print "Working on DVD #$dvd_nr in $tmp_dir\n";
- my ($parts_nr, $check_nr) = ($sth_archive_backup_parts->rows, $sth_archive_backup_check->fetchrow_array);
+ $sth_archive_backup_parts->execute($dvd_nr);
- if ($parts_nr != $check_nr) {
- warn "ERROR: DVD #$dvd_nr is still not inconsistent state. Some backup parts are ",
- ($parts_nr < $check_nr) ? "missing ($parts_nr < $check_nr)" : "extra ($parts_nr > $check_nr)",
- " you should re-create this DVD after BackupPC_incPartsUpdate finish\n";
- delete_dvd( $dvd_nr );
- next;
- }
-
- if ($sth_archive_backup_parts->rows == 0) {
- warn "ERROR: no backup parts found for $dvd_nr. You should re-create that DVD.\n";
- next if delete_dvd( $dvd_nr );
- }
+ $sth_archive_backup_check->execute($dvd_nr);
- if ($prompt_for_delete) {
- next if delete_dvd( $dvd_nr );
- }
+ my ($parts_nr, $check_nr) = ($sth_archive_backup_parts->rows, $sth_archive_backup_check->fetchrow_array);
- my @volumes;
- my $v; # emtpy volume
- my $v_size = 0;
+ if ($parts_nr != $check_nr) {
+ warn "ERROR: DVD #$dvd_nr is still not inconsistent state. Some backup parts are ",
+ ($parts_nr < $check_nr) ? "missing ($parts_nr < $check_nr)" : "extra ($parts_nr > $check_nr)",
+ " you should re-create this DVD after BackupPC_incPartsUpdate finish\n";
+ delete_dvd( $dvd_nr );
+ next;
+ }
- my $max_archive_size = $Conf{MaxArchiveSize} || die "no MaxArchiveSize";
- while (my $row = $sth_archive_backup_parts->fetchrow_hashref) {
- if (($v->{size} || 0) + $row->{part_size} > $max_archive_size) {
- push @volumes, $v;
- $v = {};
+ if ($sth_archive_backup_parts->rows == 0) {
+ warn "ERROR: no backup parts found for $dvd_nr. You should re-create that DVD.\n";
+ next if delete_dvd( $dvd_nr );
}
- $v->{size} += $row->{part_size};
- # this part
- my $p = {
- filename => BackupPC::SearchLib::getGzipName($row->{'host'}, $row->{'share'}, $row->{'num'}),
- };
- foreach my $fld (qw/part_nr md5/) {
- $p->{$fld} = $row->{$fld} || die "missing $fld in row!";
+
+ if ($prompt_for_delete) {
+ next if delete_dvd( $dvd_nr );
}
- push @{ $v->{parts} }, $p;
- }
- push @volumes, $v if ($v);
- #warn "# volumes: ",Dumper(\@volumes),"\n";
+ my @volumes;
+ my $v; # emtpy volume
+ my $v_size = 0;
- my $volumes = $#volumes + 1;
- my $volume_nr = 1;
+ my $max_archive_size = $Conf{MaxArchiveSize} || die "no MaxArchiveSize";
+ while (my $row = $sth_archive_backup_parts->fetchrow_hashref) {
+ if (($v->{size} || 0) + $row->{part_size} > $max_archive_size) {
+ push @volumes, $v;
+ $v = {};
+ }
+ $v->{size} += $row->{part_size};
+ # this part
+ my $p = {
+ filename => BackupPC::SearchLib::getGzipName($row->{'host'}, $row->{'share'}, $row->{'num'}),
+ };
+ foreach my $fld (qw/part_nr md5/) {
+ $p->{$fld} = $row->{$fld} || die "missing $fld in row!";
+ }
+ push @{ $v->{parts} }, $p;
+ }
+ push @volumes, $v if ($v);
- my $copies = $Conf{BurnMultipleCopies} || 1;
+ #warn "# volumes: ",Dumper(\@volumes),"\n";
- foreach my $copy_nr ( 1 .. $copies ) {
+ my $volumes = $#volumes + 1;
+ my $volume_nr = 1;
foreach my $v (@volumes) {
rmtree($stage) || warn "can't remove stage directory $stage: $!";
} else {
- print "ISO $iso_file allready exists\n";
+ $iso_size = (stat($iso_file))[7];
+ print "ISO $iso_file allready exists [$iso_size bytes]\n";
}
print "\nREADY TO BURN MEDIA $disk_name copy $copy_nr\n\nPlease insert blank media and press ENTER\n\n";
$sth_archive_burned->execute($dvd_nr, $iso_size, $volume_nr, $copy_nr);
print "Media burn for $disk_name copy $copy_nr recorded\n";
+
+ $volume_nr++;
}
- $volume_nr++;
}
SKIP: