diff options
Diffstat (limited to 'bin')
| -rwxr-xr-x | bin/raps2 | 57 | 
1 files changed, 31 insertions, 26 deletions
| @@ -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;  } | 
