]>
nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/commands/ListDevicesCommand.java
0f8b58198b783744b03f57297fefbdf84f66ed6f
1 package org
.asamk
.signal
.commands
;
3 import net
.sourceforge
.argparse4j
.inf
.Namespace
;
4 import net
.sourceforge
.argparse4j
.inf
.Subparser
;
6 import org
.asamk
.signal
.PlainTextWriterImpl
;
7 import org
.asamk
.signal
.commands
.exceptions
.CommandException
;
8 import org
.asamk
.signal
.commands
.exceptions
.IOErrorException
;
9 import org
.asamk
.signal
.manager
.Manager
;
10 import org
.asamk
.signal
.manager
.api
.Device
;
11 import org
.asamk
.signal
.util
.DateUtils
;
12 import org
.slf4j
.Logger
;
13 import org
.slf4j
.LoggerFactory
;
15 import java
.io
.IOException
;
16 import java
.util
.List
;
18 public class ListDevicesCommand
implements LocalCommand
{
20 private final static Logger logger
= LoggerFactory
.getLogger(ListDevicesCommand
.class);
23 public void attachToSubparser(final Subparser subparser
) {
24 subparser
.help("Show a list of linked devices.");
28 public void handleCommand(final Namespace ns
, final Manager m
) throws CommandException
{
29 final var writer
= new PlainTextWriterImpl(System
.out
);
33 devices
= m
.getLinkedDevices();
34 } catch (IOException e
) {
35 logger
.debug("Failed to get linked devices", e
);
36 throw new IOErrorException("Failed to get linked devices: " + e
.getMessage());
39 for (var d
: devices
) {
40 writer
.println("- Device {}{}:", d
.getId(), (d
.getId() == m
.getDeviceId() ?
" (this device)" : ""));
42 w
.println("Name: {}", d
.getName());
43 w
.println("Created: {}", DateUtils
.formatTimestamp(d
.getCreated()));
44 w
.println("Last seen: {}", DateUtils
.formatTimestamp(d
.getLastSeen()));