From 4f9c4790a3450f5ea1e4c6aebb0721ffa00f955d Mon Sep 17 00:00:00 2001 From: DmitriyMX Date: Wed, 14 Jun 2017 15:27:42 +0300 Subject: [PATCH] =?UTF-8?q?Zond:=20=D0=B2=D0=B5=D1=80=D0=BD=D1=83=D0=BB?= =?UTF-8?q?=D0=B8=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=BE=D0=BD=D0=B0?= =?UTF-8?q?=D0=BB=20=D0=BA=D0=BE=D0=BD=D0=BD=D0=B5=D0=BA=D1=82=D0=B0=20?= =?UTF-8?q?=D0=BA=20=D0=B0=D1=81=D0=B8=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zond/build.gradle | 2 +- zond/src/main/java/asys/zond/Main.java | 63 ++++++++------------------ 2 files changed, 19 insertions(+), 46 deletions(-) diff --git a/zond/build.gradle b/zond/build.gradle index 67f0c9d..01e88c6 100644 --- a/zond/build.gradle +++ b/zond/build.gradle @@ -1,5 +1,5 @@ group = 'asys' -version = '0.6.7-SNAPSHOT' +version = '0.6.9-SNAPSHOT' apply plugin: 'application' diff --git a/zond/src/main/java/asys/zond/Main.java b/zond/src/main/java/asys/zond/Main.java index f86ee40..5f03951 100644 --- a/zond/src/main/java/asys/zond/Main.java +++ b/zond/src/main/java/asys/zond/Main.java @@ -17,6 +17,8 @@ import java.util.Arrays; import java.util.stream.Collectors; public class Main { + private static JlineProxySysOut proxySysOut; + private static void printLogo() { System.out.println( Ansi.ansi().reset() @@ -26,11 +28,14 @@ public class Main { } public static void log(String message){ - System.out.println( - Ansi.ansi().reset() + String msg = Ansi.ansi().reset() .bg(Color.BLUE).fg(Color.WHITE).a("[ASys Zond] ") - .a(message).reset() - ); + .a(message).reset().toString(); + if (proxySysOut != null) { + proxySysOut.println(msg); + } else { + System.out.println(msg); + } } public static void main(String[] args) throws IOException { @@ -48,7 +53,7 @@ public class Main { loadConfig(); - JlineProxySysOut proxySysOut = new JlineProxySysOut(System.out); + proxySysOut = new JlineProxySysOut(System.out); JlineProxySysIn proxySysIn = new JlineProxySysIn(); ConsoleReader console = new ConsoleReader(System.in, proxySysOut); proxySysOut.setConsoleReader(console); @@ -69,25 +74,26 @@ public class Main { proxySysIn.write(line+"\r\n"); } } - } catch (Exception e) { - e.printStackTrace(); //FIXME + } catch (Throwable ignore) { } }); try { - thread.join(); thread.start(); } catch (Exception e) { e.printStackTrace();//FIXME } -// Connector.getInstance().startReconnect(); + Connector.getInstance().startReconnect(); int resultCode = executeProcess(args, proxySysOut, proxySysIn); -// Connector.getInstance().setNeedReconnect(false); -// Connector.getInstance().stopReconnect(); -// Connector.getInstance().disconnect(); + Connector.getInstance().setNeedReconnect(false); + Connector.getInstance().stopReconnect(); + Connector.getInstance().disconnect(); + + thread.interrupt(); + console.shutdown(); System.out.println( Ansi.ansi().reset().newline() @@ -102,10 +108,6 @@ public class Main { CommandLine commandLine = CommandLine.parse(cmdLine); DefaultExecutor executor = new DefaultExecutor(); -// PrintStream proxySysOut = new ProxySysOut(System.out); -// InputStream proxySysIn = new ProxySysIn(); - -// PumpStreamHandler psh = new PumpStreamHandler(proxySysOut, proxySysOut, proxySysIn); PumpStreamHandler psh = new PumpStreamHandler(printStream, printStream, stdin); psh.setStopTimeout(-1999); //hack: по-умолчанию в Apache Exec добавляется еще 2000L милисекунд executor.setStreamHandler(psh); @@ -142,33 +144,4 @@ public class Main { Config.load(fis); fis.close(); } - - private static class ProxySysOut extends PrintStream { - ProxySysOut(OutputStream out) { - super(out); - } - - @Override - public void write(byte[] buf, int off, int len) { - super.write(buf, off, len); - Connector.getInstance().sendMessage(new String(buf, off, len)); - } - } - - private static class ProxySysIn extends InputStream { - @Override - public int read() throws IOException { - return System.in.read(); - } - - @Override - public int read(byte[] b) throws IOException { - return System.in.read(b); - } - - @Override - public int read(byte[] b, int off, int len) throws IOException { - return System.in.read(b, off, len); - } - } }