Archived
0

Метод overrrideSysOutErr сделан публичным

This commit is contained in:
2015-12-15 15:42:29 +03:00
parent eced54c406
commit 7ce1ea74da
2 changed files with 9 additions and 13 deletions

View File

@@ -15,7 +15,7 @@ import java.io.PrintStream;
public class Shell { public class Shell {
public static final ArgumentCompleter.ArgumentDelimiter DELIMITER = new ArgumentCompleter.WhitespaceArgumentDelimiter(); public static final ArgumentCompleter.ArgumentDelimiter DELIMITER = new ArgumentCompleter.WhitespaceArgumentDelimiter();
private PrintStream sysOut, sysErr; private PrintStream sysErr;
private ShellPrintStream newErr; private ShellPrintStream newErr;
private String promt; private String promt;
protected ConsoleReader console; protected ConsoleReader console;
@@ -24,7 +24,7 @@ public class Shell {
protected boolean run = false; protected boolean run = false;
public void start() throws IOException, InterruptedException { public void start() throws IOException, InterruptedException {
overrideSysErr(); if (sysErr == null) overrideSysOutErr();
console = new ConsoleReader(System.in, sysErr); console = new ConsoleReader(System.in, sysErr);
if (promt == null) promt = ":"; if (promt == null) promt = ":";
@@ -48,8 +48,6 @@ public class Shell {
newErr.setConsoleReader(null); newErr.setConsoleReader(null);
console.shutdown(); console.shutdown();
System.setOut(sysOut);
System.setErr(sysErr);
} }
public void setPromt(String promt) { //FIXME коостыли!! public void setPromt(String promt) { //FIXME коостыли!!
@@ -78,8 +76,7 @@ public class Shell {
/** /**
* Подмена стандартных SysErr и SysOut * Подмена стандартных SysErr и SysOut
*/ */
private void overrideSysErr() { public void overrideSysOutErr() {
sysOut = System.out;
sysErr = System.err; sysErr = System.err;
newErr = new ShellPrintStream(sysErr); newErr = new ShellPrintStream(sysErr);
System.setErr(newErr); System.setErr(newErr);

View File

@@ -36,7 +36,11 @@ public class ShellPrintStream extends PrintStream {
@Override @Override
public void print(String s) { public void print(String s) {
if (consoleReader != null) {
println(s); println(s);
} else {
super.print(s);
}
} }
@Override @Override
@@ -57,12 +61,7 @@ public class ShellPrintStream extends PrintStream {
} }
writer.flush(); writer.flush();
} else { } else {
super.print(ConsoleReader.RESET_LINE); super.println(s);
if (formatter != null) {
super.print(formatter.format(s));
} else {
super.print(s);
}
} }
} }