The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
package # hide from PAUSE
App::DBBrowser::DB_Credentials;

use warnings;
use strict;
use 5.008003;
no warnings 'utf8';

our $VERSION = '1.001';

use Term::ReadLine::Simple qw();



sub new {
    my ( $class, $opt ) = @_;
    bless $opt, $class;
}


sub get_login {
    my ( $self, $key ) = @_;
    my $login_mode  = $self->{connect_parameter}{login_mode}{$key};
    my $keep_secret = $self->{connect_parameter}{keep_secret}{$key};
    my $saved_value = $self->{connect_parameter}{login_data}{$key};
    my $prompt = ucfirst( $key ) . ': ';
    if ( $login_mode == 2 ) {
        return;
    }
    elsif ( $login_mode == 1 && exists $ENV{'DBI_' . uc $key} ) {
        print $prompt . $ENV{'DBI_' . uc $key}, "\n" if ! $keep_secret;
        return $ENV{'DBI_' . uc $key};
    }
    elsif ( defined $saved_value ) {
        print $prompt . $saved_value, "\n" if ! $keep_secret;
        return $saved_value;
    }
    else {
        my $trs = Term::ReadLine::Simple->new();
        # Readline
        my $new;
        if ( $key eq 'pass' ) {
            $new = $trs->readline( $prompt, { no_echo => $keep_secret } );
        }
        else {
            $new = $trs->readline( $prompt );
        }
        return $new;
    }
}



1;


__END__