Метод overrrideSysOutErr сделан публичным
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -36,7 +36,11 @@ public class ShellPrintStream extends PrintStream {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void print(String s) {
|
public void print(String s) {
|
||||||
println(s);
|
if (consoleReader != null) {
|
||||||
|
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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user