From 324c08385cea4af0a1597bd9fd341b67ec707a20 Mon Sep 17 00:00:00 2001 From: dpavlin Date: Tue, 11 Oct 2005 17:55:48 +0000 Subject: [PATCH] r8469@llin: dpavlin | 2005-10-11 19:55:44 +0200 create ISO image git-svn-id: svn+ssh://llin/home/dpavlin/private/svn/BackupPC/trunk@175 8392b6e1-25fa-0310-8288-cc32f8e212ea --- bin/BackupPC_burnArchiveCLI | 52 ++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/bin/BackupPC_burnArchiveCLI b/bin/BackupPC_burnArchiveCLI index 3f4009f..6b696fe 100755 --- a/bin/BackupPC_burnArchiveCLI +++ b/bin/BackupPC_burnArchiveCLI @@ -123,13 +123,63 @@ my @archives_to_burn = Menu(\%Menu_archive); print "\n"; +sub skip($) { + my $msg = shift; + print "WARNING: $msg, skipping...\n"; + goto SKIP; +} + +my $sth_archive_backup = $dbh->prepare( qq{ + select + backup_id, + hosts.name as host, + shares.name as share, + backups.num as num + from archive_backup + join archive on archive_id = archive.id + join backups on backup_id = backups.id + join hosts on hostid = hosts.id + join shares on shareid = shares.id + where archive.dvd_nr = ? +}); + foreach my $arc (@archives_to_burn) { exit if ($arc eq ']quit['); 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\n"; + my $tmp_dir = "/$iso_dir/$dvd_nr"; + + my $t = time(); + + print "Working on DVD #$dvd_nr in $tmp_dir\n"; + + my $iso_file = "${iso_dir}/${dvd_nr}.iso"; + + skip "ISO $iso_file allready exists" if (-e $iso_file); + + $sth_archive_backup->execute($dvd_nr); + + print "Running mkisofs now...\n"; + + my $cmd = qq{ mkisofs -A BackupPC -gui -J -r -T --input-charset ISO-8859-2 -V $dvd_nr -o $iso_file -path-list - }; + + open(my $mkisofs, "| $cmd 2>&1") || skip "can't run $cmd: $!"; + + while (my $row = $sth_archive_backup->fetchrow_hashref) { + my $tar_file = BackupPC::SearchLib::getGzipName($row->{'host'}, $row->{'share'}, $row->{'num'}); + skip "can't find increment $tar_file: $!" unless (-r "$tar_dir/$tar_file"); + print $mkisofs "$tar_dir/$tar_file\n"; + } + + while(! -e $iso_file) { + sleep 1; + } + + print "Created $iso_file in ", fmt_time(time() - $t), "\n"; + +SKIP: } -- 2.20.1