Bugfix - let PipeController set modes
authorTomas Wenström <tomas.wenstrom@gmail.com>
Fri, 6 Dec 2019 22:26:55 +0000 (23:26 +0100)
committerTomas Wenström <tomas.wenstrom@gmail.com>
Fri, 6 Dec 2019 22:26:55 +0000 (23:26 +0100)
The command design is still terrible

src/kaka/cakelight/Commands.java
src/kaka/cakelight/Console.java

index 825ebe3..9a2be3b 100644 (file)
@@ -59,7 +59,7 @@ class Commands {
 
     static Console.Command push() {
         return command(new String[] {"push"}, (console, args) -> {
-            Object obj = console.handleInput(String.join(" ", args));
+            Object obj = console.internalHandleInput(String.join(" ", args));
            if (obj instanceof Mode) { // obj could be anything, which should be fixed
                console.out("pushing mode " + obj.getClass().getSimpleName());
                console.getCakelight().pushMode((Mode) obj);
index 5dfe091..89acbbd 100644 (file)
@@ -75,21 +75,21 @@ public class Console extends Thread {
            while (running) {
                System.out.print("> ");
                String input = reader.readLine();
-               internalHandleInput(input);
+               handleInput(input);
            }
        } catch (IOException e) {
            System.out.println("Error reading from command line");
        }
     }
 
-    private void internalHandleInput(String input) {
-       Object obj = handleInput(input);
+    void handleInput(String input) {
+       Object obj = internalHandleInput(input);
        if (obj instanceof Mode) {
            cakelight.setMode((Mode) obj);
        }
     }
 
-    Object handleInput(String input) {
+    Object internalHandleInput(String input) {
        String[] splitInput = input.split("\\s+", 2);
        String name = splitInput[0];
        String[] args = splitInput.length == 2