package
App::DBBrowser::Credentials;
use
5.014;
sub
new {
my
(
$class
,
$info
,
$options
) =
@_
;
my
$sf
= {
i
=>
$info
,
o
=>
$options
,
};
bless
$sf
,
$class
;
}
sub
get_login {
my
(
$sf
,
$key
,
$show_sofar
,
$settings
) =
@_
;
if
( !
exists
$settings
->{login_data}{
$key
} ) {
return
;
}
my
$default
=
$settings
->{login_data}{
$key
}{
default
};
my
$no_echo
=
$settings
->{login_data}{
$key
}{secret};
my
$env_var
=
'DBI_'
.
uc
$key
;
if
(
$settings
->{env_var_yes}{
$env_var
} &&
exists
$ENV
{
$env_var
} ) {
return
$ENV
{
$env_var
};
}
elsif
(
defined
$default
&&
length
$default
) {
return
$default
;
}
else
{
my
$prompt
=
ucfirst
(
$key
) .
': '
;
my
$tr
= Term::Form::ReadLine->new(
$sf
->{i}{tr_default} );
my
$new
=
$tr
->
readline
(
$prompt
,
{
info
=>
$show_sofar
,
no_echo
=>
$no_echo
,
history
=> [] }
);
return
$new
;
}
}
1;