- public void handleCommand(final Void request, final Manager m) throws CommandException {
- final var jsonWriter = (JsonWriter) outputWriter;
- jsonWriter.write(Map.of("version", BaseConfig.PROJECT_VERSION));
+ public void attachToSubparser(final Subparser subparser) {
+ }
+
+ @Override
+ public void handleCommand(
+ final Namespace ns, final Manager m, final OutputWriter outputWriter
+ ) throws CommandException {
+ outputVersion(outputWriter);
+ }
+
+ @Override
+ public void handleCommand(
+ final Namespace ns, final MultiAccountManager c, final OutputWriter outputWriter
+ ) throws CommandException {
+ outputVersion(outputWriter);
+ }
+
+ @Override
+ public TypeReference<Map<String, Object>> getRequestType() {
+ return new TypeReference<>() {};
+ }
+
+ private void outputVersion(final OutputWriter outputWriter) {
+ final var projectName = BaseConfig.PROJECT_NAME == null ? "signal-cli" : BaseConfig.PROJECT_NAME;
+ final var version = BaseConfig.PROJECT_VERSION == null ? "unknown" : BaseConfig.PROJECT_VERSION;
+
+ switch (outputWriter) {
+ case JsonWriter jsonWriter -> jsonWriter.write(Map.of("version", version));
+ case PlainTextWriter plainTextWriter -> plainTextWriter.println("{} {}", projectName, version);
+ }