package Brackup::DecryptedFile;
use strict;
use warnings;
use Carp qw(croak);
use Brackup::Decrypt;
sub new {
my ($class, %opts) = @_;
my $self = bless {}, $class;
$self->{original_file} = delete $opts{filename}; # filename we're restoring from
die "File $self->{original_file} does not exist"
unless $self->{original_file} && -f $self->{original_file};
croak("Unknown options: " . join(', ', keys %opts)) if %opts;
# decrypted_file might be undef if no decryption was needed.
$self->{decrypted_file} = Brackup::Decrypt::decrypt_file_if_needed($self->{original_file});
return $self;
}
sub name {
my $self = shift;
return $self->{decrypted_file} || $self->{original_file};
}
sub DESTROY {
my $self = shift;
unlink(grep { $_ } ($self->{decrypted_file}));
}
1;