mirror of
https://github.com/percona/percona-toolkit.git
synced 2025-09-10 13:11:32 +00:00
OptionParser nnow prints password prompt to STDERR - issue 1290911
This commit is contained in:
@@ -3381,7 +3381,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -866,7 +866,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -1593,7 +1593,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -1593,7 +1593,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -943,7 +943,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -939,7 +939,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -1927,7 +1927,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -867,7 +867,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -1359,7 +1359,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -868,7 +868,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -938,7 +938,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -1675,7 +1675,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -1520,7 +1520,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -948,7 +948,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -955,7 +955,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -2188,7 +2188,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -868,7 +868,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -941,7 +941,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -876,7 +876,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -1093,7 +1093,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -2605,7 +2605,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -956,7 +956,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -1305,7 +1305,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -2185,7 +2185,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -945,7 +945,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -1542,7 +1542,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -1090,7 +1090,7 @@ sub prompt_noecho {
|
|||||||
shift @_ if ref $_[0] eq __PACKAGE__;
|
shift @_ if ref $_[0] eq __PACKAGE__;
|
||||||
my ( $prompt ) = @_;
|
my ( $prompt ) = @_;
|
||||||
local $OUTPUT_AUTOFLUSH = 1;
|
local $OUTPUT_AUTOFLUSH = 1;
|
||||||
print $prompt
|
print STDERR $prompt
|
||||||
or die "Cannot print: $OS_ERROR";
|
or die "Cannot print: $OS_ERROR";
|
||||||
my $response;
|
my $response;
|
||||||
eval {
|
eval {
|
||||||
|
@@ -2117,6 +2117,32 @@ is(
|
|||||||
"--optimize got its value (bug 1199589)"
|
"--optimize got its value (bug 1199589)"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
# #############################################################################
|
||||||
|
# Issue 1290911 : prompt_noecho should send prompt to STDERR so user can
|
||||||
|
# direct STDOUT to a file and still see the prompt
|
||||||
|
# #############################################################################
|
||||||
|
|
||||||
|
$o = new OptionParser();
|
||||||
|
|
||||||
|
$output = output(
|
||||||
|
sub {
|
||||||
|
my $input = "thepassword";
|
||||||
|
local *STDIN;
|
||||||
|
open STDIN, '<', \$input;
|
||||||
|
$o->prompt_noecho('Test Prompt:'); },
|
||||||
|
|
||||||
|
stderr=>1,
|
||||||
|
);
|
||||||
|
|
||||||
|
is (
|
||||||
|
$output,
|
||||||
|
"Test Prompt:\n",
|
||||||
|
'prompt_no_echo outputs prompt to STDERR'
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# #############################################################################
|
# #############################################################################
|
||||||
# Done.
|
# Done.
|
||||||
# #############################################################################
|
# #############################################################################
|
||||||
@@ -2133,3 +2159,6 @@ like(
|
|||||||
|
|
||||||
done_testing;
|
done_testing;
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user