]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/commands/VersionCommand.java
Use console charset for reading/writing to stdin/out
[signal-cli] / src / main / java / org / asamk / signal / commands / VersionCommand.java
index 134bffa0be24af7d2f79ad68717a8db7fcd5f59e..95b4159827f6dd58db5764627bb1f3c78dd3414a 100644 (file)
@@ -1,14 +1,14 @@
 package org.asamk.signal.commands;
 
 import org.asamk.signal.BaseConfig;
-import org.asamk.signal.JsonWriter;
-import org.asamk.signal.OutputWriter;
 import org.asamk.signal.commands.exceptions.CommandException;
 import org.asamk.signal.manager.Manager;
+import org.asamk.signal.manager.MultiAccountManager;
+import org.asamk.signal.output.JsonWriter;
 
 import java.util.Map;
 
-public class VersionCommand implements JsonRpcSingleCommand<Void> {
+public class VersionCommand implements JsonRpcSingleCommand<Void>, JsonRpcMultiCommand<Void> {
 
     @Override
     public String getName() {
@@ -17,9 +17,20 @@ public class VersionCommand implements JsonRpcSingleCommand<Void> {
 
     @Override
     public void handleCommand(
-            final Void request, final Manager m, final OutputWriter outputWriter
+            final Void request, final Manager m, final JsonWriter jsonWriter
     ) throws CommandException {
-        final var jsonWriter = (JsonWriter) outputWriter;
-        jsonWriter.write(Map.of("version", BaseConfig.PROJECT_VERSION));
+        outputVersion(jsonWriter);
+    }
+
+    @Override
+    public void handleCommand(
+            final Void request, final MultiAccountManager c, final JsonWriter jsonWriter
+    ) throws CommandException {
+        outputVersion(jsonWriter);
+    }
+
+    private void outputVersion(final JsonWriter jsonWriter) {
+        jsonWriter.write(Map.of("version",
+                BaseConfig.PROJECT_VERSION == null ? "unknown" : BaseConfig.PROJECT_VERSION));
     }
 }