added hard-coded option $prompt_for_delete = 0 to prompt for removal of each DVD...
authordpavlin <dpavlin@8392b6e1-25fa-0310-8288-cc32f8e212ea>
Sun, 15 Jan 2006 14:50:39 +0000 (14:50 +0000)
committerdpavlin <dpavlin@8392b6e1-25fa-0310-8288-cc32f8e212ea>
Sun, 15 Jan 2006 14:50:39 +0000 (14:50 +0000)
Fixed creation of DVD names, and md5 sum name in iso image.

git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/BackupPC/trunk@288 8392b6e1-25fa-0310-8288-cc32f8e212ea

bin/BackupPC_burnArchiveCLI

index 4880b65..4c029c1 100755 (executable)
@@ -15,6 +15,8 @@ use File::Path;
 use Data::Dumper;
 
 my $debug = 0;
+# set this to 1 to prompt for DVD removal for each selected item.
+my $prompt_for_delete = 0;
 $|=1;
 
 # don't check for user
@@ -253,6 +255,39 @@ sub add_symlink($$) {
        symlink $from, $to || skip("can't symlink $from to $to: $!");
 }
 
+sub delete_dvd($) {
+       my $dvd_nr = shift || return;
+
+       print "Do you want to delete DVD #$dvd_nr now? [NO/yes]: ";
+       my $ok = <STDIN>;
+       chomp($ok);
+       if (lc($ok) eq 'yes') {
+               print "Deleting DVD #$dvd_nr from database...\n";
+
+               $dbh->begin_work;
+
+               my $sth_delete_dvd = $dbh->prepare( qq{
+                       delete from archive where dvd_nr = ?
+               } );
+               $sth_delete_dvd->execute( $dvd_nr );
+               $dbh->do( qq{
+                       select setval('dvd_nr', (select max(dvd_nr) from archive), true)
+               } );
+
+               # remove files for this DVD
+               map {
+                       print "\tremoving $_\n";
+                       unlink($_) || die "can't rm $_: $!";
+               } glob ( "/$iso_dir/$dvd_nr.*" );
+
+               $dbh->commit;
+
+               return 1;
+       } else {
+               return 0;
+       }
+}
+
 my $sth_archive_backup_parts = $dbh->prepare( qq{
        select
                archive_backup.backup_id,
@@ -297,24 +332,11 @@ foreach my $arc (@archives_to_burn) {
 
        if ($sth_archive_backup_parts->rows == 0) {
                warn "ERROR: no backup parts found for $dvd_nr. You should re-create that DVD.\n";
-               print "Do you want to delete invalid DVD #$dvd_nr now? [NO/yes]: ";
-               my $ok = <STDIN>;
-               chomp($ok);
-               if (lc($ok) eq 'yes') {
-                       print "Deleting DVD #$dvd_nr from database...\n";
-
-                       $dbh->begin_work;
-
-                       my $sth_delete_dvd = $dbh->prepare( qq{
-                               delete from archive where dvd_nr = ?
-                       } );
-                       $sth_delete_dvd->execute( $dvd_nr );
-                       $dbh->do( qq{
-                               select setval('dvd_nr', (select max(dvd_nr) from archive), true)
-                       } );
-
-                       $dbh->commit;
-               }
+               delete_dvd( $dvd_nr );
+       }
+
+       if ($prompt_for_delete) {
+               next if delete_dvd( $dvd_nr );
        }
 
        my @volumes;
@@ -351,7 +373,7 @@ foreach my $arc (@archives_to_burn) {
                my $iso_size = 0;
                my $disk_name = $dvd_nr;
                # suffix added to multi-volume archives
-               my $volume_suffix = $dvd_nr;
+               my $volume_suffix = '';
 
                if ($volumes > 1) {
                        $volume_suffix = '_' . $volume_nr;