/[BackupPC]/trunk/bin/BackupPC_burnArchiveCLI
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/bin/BackupPC_burnArchiveCLI

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 337 by dpavlin, Wed Mar 1 13:04:03 2006 UTC revision 341 by dpavlin, Tue Mar 7 10:06:52 2006 UTC
# Line 11  use POSIX qw/strftime/; Line 11  use POSIX qw/strftime/;
11  use Term::Menus;  use Term::Menus;
12  use File::Which;  use File::Which;
13  use File::Path;  use File::Path;
14    use Filesys::Df;
15    
16  use Data::Dumper;  use Data::Dumper;
17    
# Line 193  order by date asc Line 194  order by date asc
194    
195  $sth->execute();  $sth->execute();
196    
197    sub fmt_mb($) {
198            my $s = shift;
199            die "missing size" unless defined($s);
200            $s /= (1024*1024);
201            return sprintf("%.2f Mb", $s);
202    }
203    
204  sub fmt_archive($) {  sub fmt_archive($) {
205          my $row = shift || die;          my $row = shift || die;
206    
207          $row->{'date'} =~ s/\.\d+$//;          $row->{'date'} =~ s/\.\d+$//;
208          $row->{'copies'} =~ s/^\s*0+\s*$/no/;          $row->{'copies'} =~ s/^\s*0+\s*$/no/;
         $row->{'total_size'} /= (1024*1024);  
209    
210          my $copies = 'copies';          my $copies = 'copies';
211          $copies = 'copy' if ($row->{'copies'} == 1);          $copies = 'copy' if ($row->{'copies'} == 1);
212    
213          return          return
214                  sprintf("%d by %s on %s, %s %s [%.2f Mb]",                  sprintf("%d by %s on %s, %s %s [%s]",
215                          $row->{'dvd_nr'},                          $row->{'dvd_nr'},
216                          $row->{'username'},                          $row->{'username'},
217                          $row->{'date'},                          $row->{'date'},
218                          $row->{'copies'}, $copies,                          $row->{'copies'}, $copies,
219                          $row->{'total_size'},                          fmt_mb($row->{'total_size'}),
220                  );                  );
221  }  }
222    
# Line 382  foreach my $copy_nr ( 1 .. $copies ) { Line 389  foreach my $copy_nr ( 1 .. $copies ) {
389                                  $v = {};                                  $v = {};
390                          }                          }
391                          $v->{size} += $row->{part_size};                          $v->{size} += $row->{part_size};
392                            $v_size += $row->{part_size};
393    
394                          # this part                          # this part
395                          my $p = {                          my $p = {
396                                  filename => BackupPC::SearchLib::getGzipName($row->{'host'}, $row->{'share'}, $row->{'num'}),                                  filename => BackupPC::SearchLib::getGzipName($row->{'host'}, $row->{'share'}, $row->{'num'}),
# Line 393  foreach my $copy_nr ( 1 .. $copies ) { Line 402  foreach my $copy_nr ( 1 .. $copies ) {
402                  }                  }
403                  push @volumes, $v if ($v);                  push @volumes, $v if ($v);
404    
405                  #warn "# volumes: ",Dumper(\@volumes),"\n";                  #warn "# volumes: ",Dumper(\@volumes)," total size: ", fmt_mb($v_size), "\n";
406    
407                    # check available disk space
408    
409                    my $df = df($iso_dir)->{bavail} || die "can't get free space on $iso_dir";
410                    $df *= 1024;    # calulate space in bytes
411                    if ($df < $v_size) {
412                            warn "ABORTED: not enough disk space to create ISO ! [need ", fmt_mb($v_size), " have ", fmt_mb( $df ), " on $iso_dir]\n";
413                            next;
414                    }
415    
416                  my $volumes = $#volumes + 1;                  my $volumes = $#volumes + 1;
417                  my $volume_nr = 1;                  my $volume_nr = 1;
# Line 412  foreach my $copy_nr ( 1 .. $copies ) { Line 430  foreach my $copy_nr ( 1 .. $copies ) {
430                                  $disk_name .= ' ' . $volume_nr . '/' . $volumes;                                  $disk_name .= ' ' . $volume_nr . '/' . $volumes;
431                          }                          }
432    
433                          print "Processing DVD #$dvd_nr, volume $volume_nr/$volumes\n";                          print "Processing DVD #$dvd_nr, volume $volume_nr/$volumes [", fmt_mb($v->{size}), "]\n";
434    
435                          my $iso_file = my $xml_file = my $stage =                          my $iso_file = my $xml_file = my $stage =
436                                  "${iso_dir}/${dvd_nr}";                                  "${iso_dir}/${dvd_nr}";
# Line 511  foreach my $copy_nr ( 1 .. $copies ) { Line 529  foreach my $copy_nr ( 1 .. $copies ) {
529                          $sth_archive_burned->execute($dvd_nr, $iso_size, $volume_nr, $copy_nr);                          $sth_archive_burned->execute($dvd_nr, $iso_size, $volume_nr, $copy_nr);
530    
531                          print "Media burn for $disk_name copy $copy_nr recorded\n";                          print "Media burn for $disk_name copy $copy_nr recorded\n";
532                    
533                            if ($copy_nr >= $copies) {
534                                    print STDERR "erasing temporary files, have $copy_nr copies (> $copies)\n";
535                                    foreach my $f (( $xml_file, $iso_file )) {
536                                            print STDERR "\t$f ";
537                                            unlink $f || die "can't remove $f: $!";
538                                            print STDERR "removed\n";
539                                    }
540                            }
541    
542                          $volume_nr++;                          $volume_nr++;
543                  }                  }
544    

Legend:
Removed from v.337  
changed lines
  Added in v.341

  ViewVC Help
Powered by ViewVC 1.1.26