This is an automated email from the ASF dual-hosted git repository.
ddanielr pushed a commit to branch 2.1
in repository https://gitbox.apache.org/repos/asf/accumulo.git
The following commit(s) were added to refs/heads/2.1 by this push:
new b140460c06 Adds property for jline to prefer using stdout vs stderr
(#5221)
b140460c06 is described below
commit b140460c06ca4ac6eaab8f8c1fda65db858e486b
Author: Daniel Roberts <[email protected]>
AuthorDate: Mon Jan 13 12:06:14 2025 -0500
Adds property for jline to prefer using stdout vs stderr (#5221)
* Adds property for jline to always use stdout
When the shell is being used with a `-e <command>` option jline does not
write the output on stdout when also used with a pipe `|` operator.
Instead the output is written to stderr. This causes frustration when
attempting to script actions using the accumulo shell.
* Set system out in TerminalBuilder instead
Change the output behavior manually instead of using the jline
properties.
---
shell/src/main/java/org/apache/accumulo/shell/Shell.java | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/shell/src/main/java/org/apache/accumulo/shell/Shell.java
b/shell/src/main/java/org/apache/accumulo/shell/Shell.java
index 615b2cc4c8..eafe3d69e1 100644
--- a/shell/src/main/java/org/apache/accumulo/shell/Shell.java
+++ b/shell/src/main/java/org/apache/accumulo/shell/Shell.java
@@ -175,6 +175,7 @@ import org.jline.reader.impl.LineReaderImpl;
import org.jline.terminal.Attributes;
import org.jline.terminal.Terminal;
import org.jline.terminal.TerminalBuilder;
+import org.jline.terminal.TerminalBuilder.SystemOutput;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -300,7 +301,8 @@ public class Shell extends ShellOptions implements
KeywordExecutable {
*/
public boolean config(String... args) throws IOException {
if (this.terminal == null) {
- this.terminal = TerminalBuilder.builder().jansi(false).build();
+ this.terminal =
+
TerminalBuilder.builder().jansi(false).systemOutput(SystemOutput.SysOut).build();
}
if (this.reader == null) {
this.reader =
LineReaderBuilder.builder().terminal(this.terminal).build();