From 4ad66df49ebd04292aa4bc20b2156b80ac4a2dfe Mon Sep 17 00:00:00 2001 From: Peter Somogyi Date: Tue, 1 Mar 2022 11:52:07 +0100 Subject: [PATCH] HBASE-26772 Shell suspended in background (#4137) Signed-off-by: Sean Busbey --- hbase-shell/src/main/ruby/irb/hirb.rb | 8 +++++--- hbase-shell/src/main/ruby/jar-bootstrap.rb | 4 +++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/hbase-shell/src/main/ruby/irb/hirb.rb b/hbase-shell/src/main/ruby/irb/hirb.rb index 28f311ca36a1..9a81f5abc77d 100644 --- a/hbase-shell/src/main/ruby/irb/hirb.rb +++ b/hbase-shell/src/main/ruby/irb/hirb.rb @@ -33,7 +33,7 @@ def initialize(workspace = nil, input_method = nil) # happen is the shell exiting because of failed IRB construction with # no error (though we're not blanking STDERR) - # Map the '/dev/null' according to the runing platform + # Map the '/dev/null' according to the running platform # Under Windows platform the 'dev/null' is not fully compliant with unix, # and the 'NUL' object need to be use instead. devnull = '/dev/null' @@ -42,8 +42,10 @@ def initialize(workspace = nil, input_method = nil) $stdout = f # This is a workaround for the jruby issue 1372. # The stderr is an input to stty to re-adjust the terminal for the error('stdin isnt a terminal') - # incase the command is piped with hbase shell(eg - >echo 'list' | bin/hbase shell) - `stty icrnl <&2` + # in case the command is piped with hbase shell(eg - >echo 'list' | bin/hbase shell) + if $stdin.tty? + `stty icrnl <&2` + end super(workspace, input_method) ensure f.close diff --git a/hbase-shell/src/main/ruby/jar-bootstrap.rb b/hbase-shell/src/main/ruby/jar-bootstrap.rb index 55f55f379450..ee2fe9fd21e9 100644 --- a/hbase-shell/src/main/ruby/jar-bootstrap.rb +++ b/hbase-shell/src/main/ruby/jar-bootstrap.rb @@ -38,7 +38,9 @@ include Java # Some goodies for hirb. Should these be left up to the user's discretion? -require 'irb/completion' +if $stdin.tty? + require 'irb/completion' +end require 'pathname' require 'getoptlong'