]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/commands/ListIdentitiesCommand.java
Use PlainTextWriter for all cli stdout output
[signal-cli] / src / main / java / org / asamk / signal / commands / ListIdentitiesCommand.java
index cb8aa8bc1eaa4ab7ba5dd9e95d00ade52251916d..1f1b6258413401ececc34b28371df5d70019b9ac 100644 (file)
@@ -3,22 +3,34 @@ package org.asamk.signal.commands;
 import net.sourceforge.argparse4j.inf.Namespace;
 import net.sourceforge.argparse4j.inf.Subparser;
 
+import org.asamk.signal.PlainTextWriter;
+import org.asamk.signal.PlainTextWriterImpl;
 import org.asamk.signal.manager.Manager;
 import org.asamk.signal.manager.storage.protocol.IdentityInfo;
 import org.asamk.signal.util.Hex;
 import org.asamk.signal.util.Util;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.whispersystems.signalservice.api.util.InvalidNumberException;
 
+import java.io.IOException;
+
 public class ListIdentitiesCommand implements LocalCommand {
 
-    private static void printIdentityFingerprint(Manager m, IdentityInfo theirId) {
+    private final static Logger logger = LoggerFactory.getLogger(ListIdentitiesCommand.class);
+
+    private static void printIdentityFingerprint(PlainTextWriter writer, Manager m, IdentityInfo theirId) {
         var digits = Util.formatSafetyNumber(m.computeSafetyNumber(theirId.getAddress(), theirId.getIdentityKey()));
-        System.out.println(String.format("%s: %s Added: %s Fingerprint: %s Safety Number: %s",
-                theirId.getAddress().getNumber().orNull(),
-                theirId.getTrustLevel(),
-                theirId.getDateAdded(),
-                Hex.toString(theirId.getFingerprint()),
-                digits));
+        try {
+            writer.println("{}: {} Added: {} Fingerprint: {} Safety Number: {}",
+                    theirId.getAddress().getNumber().orNull(),
+                    theirId.getTrustLevel(),
+                    theirId.getDateAdded(),
+                    Hex.toString(theirId.getFingerprint()),
+                    digits);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
     }
 
     @Override
@@ -28,16 +40,18 @@ public class ListIdentitiesCommand implements LocalCommand {
 
     @Override
     public int handleCommand(final Namespace ns, final Manager m) {
+        final var writer = new PlainTextWriterImpl(System.out);
+
         if (ns.get("number") == null) {
             for (var identity : m.getIdentities()) {
-                printIdentityFingerprint(m, identity);
+                printIdentityFingerprint(writer, m, identity);
             }
         } else {
             var number = ns.getString("number");
             try {
                 var identities = m.getIdentities(number);
                 for (var id : identities) {
-                    printIdentityFingerprint(m, id);
+                    printIdentityFingerprint(writer, m, id);
                 }
             } catch (InvalidNumberException e) {
                 System.err.println("Invalid number: " + e.getMessage());