diff --git a/zond/build.gradle b/zond/build.gradle index bba81ae..4f37fa8 100644 --- a/zond/build.gradle +++ b/zond/build.gradle @@ -1,5 +1,5 @@ group = 'asys' -version = '0.7.1-SNAPSHOT' +version = '0.7.2-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 37621ba..f5cc9af 100644 --- a/zond/src/main/java/asys/zond/Main.java +++ b/zond/src/main/java/asys/zond/Main.java @@ -17,6 +17,7 @@ public class Main { private void start() { Shell shell = Shell.getInstance(); try { + shell.setCommandHandler(new ZondCommandHandler()); shell.start(System.in); } catch (Exception e) { e.printStackTrace(); diff --git a/zond/src/main/java/asys/zond/ZondCommandHandler.java b/zond/src/main/java/asys/zond/ZondCommandHandler.java new file mode 100644 index 0000000..11b47df --- /dev/null +++ b/zond/src/main/java/asys/zond/ZondCommandHandler.java @@ -0,0 +1,25 @@ +/* + * DmitriyMX + * 2017-06-15 + */ +package asys.zond; + +import asys.zond.shell.CommandHandler; +import asys.zond.shell.Shell; + +public class ZondCommandHandler implements CommandHandler { + @Override + public void handle(String commandLine) { + if (commandLine.startsWith(":")) { + internalCommand(commandLine.substring(1)); + } else { + Shell.getInstance().getOutput().println(commandLine); + } + } + + private void internalCommand(String line) { + if (line.equalsIgnoreCase("exit") || line.equalsIgnoreCase("quit")) { + Shell.getInstance().shutdown(); + } + } +} diff --git a/zond/src/main/java/asys/zond/shell/Shell.java b/zond/src/main/java/asys/zond/shell/Shell.java index 13b914e..f63bc2a 100644 --- a/zond/src/main/java/asys/zond/shell/Shell.java +++ b/zond/src/main/java/asys/zond/shell/Shell.java @@ -59,4 +59,8 @@ public class Shell { public void setOutputHook(ShellOutputHook outputHook) { shellStdOut.setOutputHook(outputHook); } + + public void setCommandHandler(CommandHandler commandHandler) { + this.commandHandler = commandHandler; + } }