--- trunk/bin/BackupPC_burnArchiveCLI 2005/10/14 14:02:51 201 +++ trunk/bin/BackupPC_burnArchiveCLI 2005/10/14 14:02:52 202 @@ -16,10 +16,17 @@ my $debug = 0; $|=1; -my $cdr_opts = 'dev=/dev/hdc blank=fast -v -eject'; +# don't check for user +my $bpc = BackupPC::Lib->new(undef, undef, 1) || die; +my %Conf = $bpc->Conf(); +%BackupPC::SearchLib::Conf = %Conf; + +my $cdrecord = $Conf{CDRecordBin} || die "Need CDRecordBin in config.pl\n"; +my $cdr_opts = $Conf{CDRecordOpts} || die "Need CDRecordOpts in config.pl\n"; + my $bin; -foreach my $c (qw/mkisofs cdrecord eject/) { +foreach my $c (qw/mkisofs eject/, $cdrecord) { $bin->{$c} = which($c) || die "$0 needs $c, install it\n"; } @@ -27,10 +34,6 @@ my $t_fmt = '%Y-%m-%d %H:%M:%S'; -# don't check for user -my $bpc = BackupPC::Lib->new(undef, undef, 1) || die; -my %Conf = $bpc->Conf(); -%BackupPC::SearchLib::Conf = %Conf; my $dsn = $Conf{SearchDSN} || die "Need SearchDSN in config.pl\n"; my $user = $Conf{SearchUser} || ''; @@ -91,8 +94,7 @@ backups.date AS date, shares.name AS share, backups.size AS backup_size, - backups.inc_size AS compress_size, - backups.parts AS parts + backups.inc_size AS compress_size FROM backups, archive_backup, hosts, shares WHERE archive_backup.backup_id = backups.id AND hosts.id=backups.hostid @@ -171,20 +173,15 @@ $row->{'copies'} =~ s/^\s*0+\s*$/no/; $row->{'total_size'} /= (1024*1024); - my $copies = $row->{'copies'}; - if ($row->{'parts'} > 1) { - $copies .= '/' . $row->{'parts'}; - } - - my $copies_dest = 'copies'; - $copies_dest = 'copy' if ($row->{'copies'} == 1); + my $copies = 'copies'; + $copies = 'copy' if ($row->{'copies'} == 1); return sprintf("%d by %s on %s, %s %s [%.2f Mb]", $row->{'dvd_nr'}, $row->{'username'}, $row->{'date'}, - $copies, $copies_dest, + $row->{'copies'}, $copies, $row->{'total_size'}, ); } @@ -246,8 +243,8 @@ my $sth_archive_burned = $dbh->prepare( qq{ insert into archive_burned - (archive_id, iso_size, part) - values ( (select id from archive where dvd_nr =?), ?, ?) + (archive_id, iso_size, part, copy) + values ( (select id from archive where dvd_nr =?), ?, ?, ?) }); foreach my $arc (@archives_to_burn) { @@ -346,22 +343,28 @@ print "ISO $iso_file allready exists\n"; } - print "\nREADY TO BURN MEDIA $disk_name please insert blank media and press ENTER\n\n"; + my $copies = $Conf{BurnMultipleCopies} || 1; - system($bin->{'eject'}) == 0 or skip "can't run eject: $?"; + foreach my $copy_nr ( 1 .. $copies ) { - my $wait = ; + print "\nREADY TO BURN MEDIA $disk_name copy $copy_nr\n\nPlease insert blank media and press ENTER\n\n"; - my $cmd = $bin->{'cdrecord'} . ' ' . $cdr_opts . ' ' . $iso_file; + system($bin->{'eject'}) == 0 or skip "can't run eject: $?"; -# system($cmd) == 0 or skip "can't run $cmd: $?"; - print "## $cmd\n"; + my $wait = ; - print "\n\nPLEASE REMOVE DVD MEDIA AND LABEL IT WITH $disk_name\n\n"; + my $cmd = $bin->{$cdrecord} . ' ' . $cdr_opts . ' ' . $iso_file; - $sth_archive_burned->execute($dvd_nr, $iso_size, $part_nr); + # FIXME + print "## $cmd\n"; + system($cmd) == 0 or skip "can't run $cmd: $?"; + + print "\n\nPLEASE REMOVE DVD MEDIA AND LABEL IT WITH $disk_name\n\n"; - print "Media burn for $disk_name recorded\n"; + $sth_archive_burned->execute($dvd_nr, $iso_size, $part_nr, $copy_nr); + + print "Media burn for $disk_name copy $copy_nr recorded\n"; + } $part_nr++; } until ($part_nr > $parts);