diff -r 136d6b9b5a67 -r 8c2cc26d45fc bin/imager.save --- a/bin/imager.save Mon Jun 18 16:55:10 2012 +0200 +++ b/bin/imager.save Mon Aug 27 15:51:22 2012 +0200 @@ -16,18 +16,17 @@ use Pod::Usage; use Imager 0.1; -use constant KiB => 1024; -use constant MiB => 1024 * KiB; -use constant GiB => 1024 * MiB; -use constant BS => 4 * MiB; -use constant DATEFMT => "%Y-%m-%dT%H:%M:%SZ"; -use constant CIPHER => "aes-128-cbc"; +use constant KiB => 1024; +use constant MiB => 1024 * KiB; +use constant GiB => 1024 * MiB; +use constant BS => 4 * MiB; +use constant DATEFMT => "%Y-%m-%dT%H:%M:%SZ"; +use constant CIPHER => "aes-128-cbc"; sub get_devsize; sub get_devname; sub save; - $SIG{INT} = sub { die "Got INT\n" }; my %o = ( @@ -53,7 +52,7 @@ "c|comment=s" => \$o{comment}, "z|compress:i" => sub { $o{compress} = $_[1] ? $_[1] : Z_BEST_SPEED }, "p|pass=s" => \$o{pass}, - "now=i" => \$o{now}, + "now=i" => \$o{now}, "b|blocksize=s" => sub { given ($_[1]) { when (/(\d+)G/i) { $o{blocksize} = $1 * GiB }; @@ -83,7 +82,7 @@ my $rc = 0; while (wait != -1) { - $rc = ($? >> 8) if ($? >> 8) > $rc; + $rc = ($? >> 8) if ($? >> 8) > $rc; } exit $rc; @@ -178,29 +177,28 @@ } binmode($out); - - my $bufref = \$buffer; - if ($o{compress}) { - my $zbuffer; - gzip( - \$buffer => \$zbuffer, - -Minimal => 1, - -Level => Z_BEST_SPEED, - -Strategy => Z_FILTERED - ) or die $GzipError; - if (length($zbuffer) / length($buffer) < 0.9) { - $bufref = \$zbuffer; - $ext = ".gz$ext"; - } + my $bufref = \$buffer; + if ($o{compress}) { + my $zbuffer; + gzip( + \$buffer => \$zbuffer, + -Minimal => 1, + -Level => Z_BEST_SPEED, + -Strategy => Z_FILTERED + ) or die $GzipError; + if (length($zbuffer) / length($buffer) < 0.9) { + $bufref = \$zbuffer; + $ext = ".gz$ext"; } + } - #for(my $todo = length $$bufref; - # $todo -= syswrite $out => $$bufref, $todo, -$todo; 1) - #{ - #} - syswrite $out => $$bufref; - - close($out) or die $!; + #for(my $todo = length $$bufref; + # $todo -= syswrite $out => $$bufref, $todo, -$todo; 1) + #{ + #} + syswrite $out => $$bufref or die "$0: write: $!\n"; + close($out) or die "$0: close output file: $!"; + rename($out => "$data/$file$ext"); $index{BLOCKS}[$blknr] .= " *"; $stats{written}++;