diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/App/Raps2.pm | 31 |
1 files changed, 19 insertions, 12 deletions
diff --git a/lib/App/Raps2.pm b/lib/App/Raps2.pm index 073ff33..d173adc 100644 --- a/lib/App/Raps2.pm +++ b/lib/App/Raps2.pm @@ -6,7 +6,7 @@ use 5.010; use App::Raps2::Password; use App::Raps2::UI; -use Carp qw(confess); +use Carp qw(cluck confess); use Config::Tiny; use File::BaseDir qw(config_home data_home); use File::Path qw(make_path); @@ -155,15 +155,10 @@ sub load_defaults { return; } -sub cost { - my ( $self, $cost ) = @_; +sub conf { + my ( $self, $key ) = @_; - if ($cost) { - $self->{default}{cost} = $cost; - $self->write_config(); - } - - return $self->{default}{cost}; + return $self->{default}{$key}; } sub pw { @@ -187,6 +182,18 @@ sub ui { return $self->{ui}; } +sub generate_password { + my ($self) = @_; + + open( my $pwgen, q{-|}, $self->conf('pwgen_cmd') ) or return; + my $password = <$pwgen>; + close($pwgen) or cluck("Cannot close pwgen pipe: $!"); + + chomp $password; + + return $password; +} + sub pw_save { my ( $self, %data ) = @_; @@ -236,9 +243,9 @@ sub pw_load { # use the one of the master password return { - url => $key->{url}, - login => $key->{login}, - cost => $key->{cost} // $self->{master_cost}, + url => $key->{url}, + login => $key->{login}, + cost => $key->{cost} // $self->{master_cost}, password => $self->pw->decrypt( data => $key->{hash}, salt => $key->{salt}, |