From d996a363bf26b2291b0fb67ed6331aefee865278 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Mon, 4 Jul 2011 12:31:48 +0200 Subject: raps2: Simplify error checking --- bin/raps2 | 57 +++++++++++++++++++++++++++++++-------------------------- 1 file changed, 31 insertions(+), 26 deletions(-) (limited to 'bin/raps2') diff --git a/bin/raps2 b/bin/raps2 index f908040..4898dd5 100755 --- a/bin/raps2 +++ b/bin/raps2 @@ -15,16 +15,35 @@ my ( $action, @args ) = @ARGV; our $VERSION = '0.4'; -sub cmd_add { - my ($name) = @_; +sub file_must_exist { + my ( $file, $name ) = @_; - my $pwfile = data_home('raps2') . "/${name}"; + if ( not defined $file ) { + say STDERR "No such account: ${name}"; + exit 2; + } + + return; +} - if ( -e $pwfile ) { +sub file_must_not_exist { + my ( $file, $name ) = @_; + + if ( -e $file ) { say STDERR "Account already exists: ${name}"; exit 2; } + return; +} + +sub cmd_add { + my ($name) = @_; + + my $pwfile = data_home('raps2') . "/${name}"; + + file_must_not_exist( $pwfile, $name ); + $raps2->get_master_password(); my $url = $raps2->ui->read_line('URL'); @@ -48,10 +67,7 @@ sub cmd_dump { my $pwfile = data_files("raps2/${name}"); - if ( not defined $pwfile ) { - say STDERR "Account does not exist: ${name}"; - exit 2; - } + file_must_exist( $pwfile, $name ); $raps2->get_master_password(); @@ -74,10 +90,7 @@ sub cmd_edit { my $pwfile = data_files("raps2/${name}"); - if ( not defined $pwfile ) { - say STDERR "Account does not exist: ${name}"; - exit 2; - } + file_must_exist( $pwfile, $name ); $raps2->get_master_password(); @@ -111,10 +124,7 @@ sub cmd_get { my $pwfile = data_files("raps2/${name}"); - if ( not defined $pwfile ) { - say STDERR "Account does not exist: ${name}"; - exit 2; - } + file_must_exist( $pwfile, $name ); $raps2->get_master_password(); @@ -134,10 +144,7 @@ sub cmd_info { my $pwfile = data_files("raps2/${name}"); - if ( not defined $pwfile ) { - say STDERR "Account does not exist: ${name}"; - exit 2; - } + file_must_exist( $pwfile, $name ); my $key = $raps2->pw_load_info( file => $pwfile ); $raps2->ui->output( [ 'URL', $key->{url} ], [ 'Login', $key->{login} ], ); @@ -165,12 +172,10 @@ sub cmd_remove { my $pwfile = data_files("raps2/${name}"); - if ( defined $pwfile ) { - unlink($pwfile); - } - else { - say STDERR "Account did not exist: ${name}"; - } + file_must_exist( $pwfile, $name ); + + unlink($pwfile) + or die("Could not unlink ${pwfile}: ${!}\n"); return; } -- cgit v1.2.3