summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2011-05-13 12:32:28 +0200
committerDaniel Friesel <derf@finalrewind.org>2011-05-13 12:32:28 +0200
commit4149a04c9857873553b2b39feaa84181c2320813 (patch)
treedf6402aeff4ffdad147bc06eacf61aa648857063 /lib
parenta3085b24320ac3d9eaa56b71b8dce1a58a4a7e06 (diff)
Add raps2 list
Diffstat (limited to 'lib')
-rw-r--r--lib/App/Raps2.pm21
-rw-r--r--lib/App/Raps2/UI.pm11
2 files changed, 31 insertions, 1 deletions
diff --git a/lib/App/Raps2.pm b/lib/App/Raps2.pm
index f05f21e..6b4929c 100644
--- a/lib/App/Raps2.pm
+++ b/lib/App/Raps2.pm
@@ -40,7 +40,7 @@ use App::Raps2::UI;
use Carp q(confess);
use File::BaseDir qw(config_home data_home);
use File::Path qw(make_path);
-use File::Slurp qw(slurp write_file);
+use File::Slurp qw(read_dir slurp write_file);
our @EXPORT_OK = ();
our $VERSION = '0.1';
@@ -327,3 +327,22 @@ sub cmd_info {
['Login', $key{'login'}],
);
}
+
+=head2 ->cmd_list()
+
+Lists all saved passwords and their logins and urls
+
+=cut
+
+sub cmd_list {
+ my ($self) = @_;
+
+ for my $file (read_dir($self->{xdg_data})) {
+ my %key = file_to_hash($self->{xdg_data} . "/${file}");
+ $self->ui->list(
+ ['Account', $file],
+ ['Login', $key{login}],
+ ['URL', $key{url}],
+ );
+ }
+}
diff --git a/lib/App/Raps2/UI.pm b/lib/App/Raps2/UI.pm
index 82b2acd..29e8ef1 100644
--- a/lib/App/Raps2/UI.pm
+++ b/lib/App/Raps2/UI.pm
@@ -19,6 +19,17 @@ sub new {
return bless($ref, $obj);
}
+sub list {
+ my ($self, @list) = @_;
+ my $format = "%-20s %-20s %s\n";
+
+ if (not $self->{list}->{header}) {
+ printf($format, map { $_->[0] } @list);
+ $self->{list}->{header} = 1;
+ }
+ printf($format, map { $_->[1] // q{} } @list);
+}
+
sub read_line {
my ($self, $str) = @_;