App-DBBrowser
view release on metacpan or search on metacpan
lib/App/DBBrowser/Credentials.pm view on Meta::CPAN
package # hide from PAUSE
App::DBBrowser::Credentials;
use warnings;
use strict;
use 5.016;
use Term::Form::ReadLine qw();
sub new {
my ( $class, $info, $options ) = @_;
my $sf = {
i => $info,
o => $options,
};
bless $sf, $class;
}
sub get_login {
my ( $sf, $key, $show_sofar ) = @_;
if ( ! $sf->{o}{connect_data}{"${key}_required"} ) {
return;
}
my $env_var = 'DBI_' . uc $key;
if ( length $sf->{o}{connect_data}{$key} ) {
return $sf->{o}{connect_data}{$key};
}
elsif ( $sf->{o}{connect_data}{"use_dbi_$key"} && exists $ENV{$env_var} ) {
return $ENV{$env_var}; #
}
else {
my $no_echo = $key =~ /^(?:host|port|user)\z/ ? 0 : 1;
my $prompt = ucfirst( $key ) . ': ';
my $tr = Term::Form::ReadLine->new( $sf->{i}{tr_default} );
# Readline
my $new = $tr->readline(
$prompt,
{ info => $show_sofar, no_echo => $no_echo, history => [] }
);
return $new;
}
}
1;
__END__
( run in 0.647 second using v1.01-cache-2.11-cpan-6aa56a78535 )