bin/imager.save
changeset 83 8d28864d1ba1
parent 82 ac36dbb9f773
child 98 2f82c51d587f
equal deleted inserted replaced
82:ac36dbb9f773 83:8d28864d1ba1
    24 use constant CIPHER   => "aes-128-cbc";
    24 use constant CIPHER   => "aes-128-cbc";
    25 
    25 
    26 sub get_devsize;
    26 sub get_devsize;
    27 sub get_devname;
    27 sub get_devname;
    28 sub save;
    28 sub save;
       
    29 
    29 
    30 
    30 $SIG{INT} = sub { die "Got INT\n" };
    31 $SIG{INT} = sub { die "Got INT\n" };
    31 
    32 
    32 my %o = (
    33 my %o = (
    33     compress  => undef,
    34     compress  => undef,
   117         host       => hostname,
   118         host       => hostname,
   118         filesystem => $src,
   119         filesystem => $src,
   119         blocksize  => $o{blocksize},
   120         blocksize  => $o{blocksize},
   120         devsize    => $size,
   121         devsize    => $size,
   121         timestamp  => $o{now},
   122         timestamp  => $o{now},
   122         datetime   => strftime(DATEFMT => gmtime $o{now}),
   123         datetime   => strftime(DATEFMT, gmtime $o{now}),
   123         (defined $o{comment} ? (comment => $o{comment}) : ()),
   124         (defined $o{comment} ? (comment => $o{comment}) : ()),
   124         encryption => $o{pass} ? CIPHER : "none",
   125         encryption => $o{pass} ? CIPHER : "none",
   125     };
   126     };
   126 
   127 
   127     open(my $in => $src);
   128     open(my $in => $src);
   218     say $index join "\n" => "# imager",
   219     say $index join "\n" => "# imager",
   219       (map { "$_: $index{META}{$_}" } sort(keys %{ $index{META} })),
   220       (map { "$_: $index{META}{$_}" } sort(keys %{ $index{META} })),
   220       "",
   221       "",
   221       @{ $index{BLOCKS} };
   222       @{ $index{BLOCKS} };
   222     close($index);
   223     close($index);
   223     rename $index->filename => "$idx/" . strftime(DATEFMT => gmtime $o{now});
   224     rename $index->filename => "$idx/" . strftime(DATEFMT, gmtime $o{now});
   224 
   225 
   225     say "# $src DONE (runtime " . (time() - $^T) . "s)";
   226     say "# $src DONE (runtime " . (time() - $^T) . "s)";
   226     say "# $src WRITTEN $stats{written}, SKIPPED $stats{skipped} blocks";
   227     say "# $src WRITTEN $stats{written}, SKIPPED $stats{skipped} blocks";
   227     say "# $src SAVINGS "
   228     say "# $src SAVINGS "
   228       . sprintf "%3d%%" => 100 *
   229       . sprintf "%3d%%" => 100 *