]> nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/commands/ListGroupsCommand.java
Minor spelling/grammar fix
[signal-cli] / src / main / java / org / asamk / signal / commands / ListGroupsCommand.java
1 package org.asamk.signal.commands;
2
3 import net.sourceforge.argparse4j.impl.Arguments;
4 import net.sourceforge.argparse4j.inf.Namespace;
5 import net.sourceforge.argparse4j.inf.Subparser;
6 import org.asamk.signal.manager.Manager;
7 import org.asamk.signal.storage.groups.GroupInfo;
8 import org.whispersystems.signalservice.internal.util.Base64;
9
10 import java.util.List;
11
12 public class ListGroupsCommand implements LocalCommand {
13
14 private static void printGroup(GroupInfo group, boolean detailed) {
15 if (detailed) {
16 System.out.println(String.format("Id: %s Name: %s Active: %s Members: %s",
17 Base64.encodeBytes(group.groupId), group.name, group.active, group.members));
18 } else {
19 System.out.println(String.format("Id: %s Name: %s Active: %s", Base64.encodeBytes(group.groupId),
20 group.name, group.active));
21 }
22 }
23
24 @Override
25 public void attachToSubparser(final Subparser subparser) {
26 subparser.addArgument("-d", "--detailed").action(Arguments.storeTrue())
27 .help("List members of each group");
28 subparser.help("List group name and ids");
29 }
30
31 @Override
32 public int handleCommand(final Namespace ns, final Manager m) {
33 if (!m.isRegistered()) {
34 System.err.println("User is not registered.");
35 return 1;
36 }
37
38 List<GroupInfo> groups = m.getGroups();
39 boolean detailed = ns.getBoolean("detailed");
40
41 for (GroupInfo group : groups) {
42 printGroup(group, detailed);
43 }
44 return 0;
45 }
46 }