]>
nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/commands/ListDevicesCommand.java
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
) {
27 public void handleCommand(final Namespace ns
, final Manager m
) throws CommandException
{
28 final var writer
= new PlainTextWriterImpl(System
.out
);
32 devices
= m
.getLinkedDevices();
33 } catch (IOException e
) {
34 logger
.debug("Failed to get linked devices", e
);
35 throw new IOErrorException("Failed to get linked devices: " + e
.getMessage());
38 for (var d
: devices
) {
39 writer
.println("- Device {}{}:", d
.getId(), (d
.getId() == m
.getDeviceId() ?
" (this device)" : ""));
41 w
.println("Name: {}", d
.getName());
42 w
.println("Created: {}", DateUtils
.formatTimestamp(d
.getCreated()));
43 w
.println("Last seen: {}", DateUtils
.formatTimestamp(d
.getLastSeen()));