]>
nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/commands/UpdateProfileCommand.java
d8b9c6c767fbb93c7d6a441bf07e8434a5a7ba5e
1 package org
.asamk
.signal
.commands
;
3 import net
.sourceforge
.argparse4j
.impl
.Arguments
;
4 import net
.sourceforge
.argparse4j
.inf
.Namespace
;
5 import net
.sourceforge
.argparse4j
.inf
.Subparser
;
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
.whispersystems
.libsignal
.util
.guava
.Optional
;
13 import java
.io
.IOException
;
15 public class UpdateProfileCommand
implements LocalCommand
{
18 public void attachToSubparser(final Subparser subparser
) {
19 subparser
.help("Set a name, about and avatar image for the user profile");
20 subparser
.addArgument("--given-name", "--name").help("New profile (given) name");
21 subparser
.addArgument("--family-name").help("New profile family name (optional)");
22 subparser
.addArgument("--about").help("New profile about text");
23 subparser
.addArgument("--about-emoji").help("New profile about emoji");
25 final var avatarOptions
= subparser
.addMutuallyExclusiveGroup();
26 avatarOptions
.addArgument("--avatar").help("Path to new profile avatar");
27 avatarOptions
.addArgument("--remove-avatar").action(Arguments
.storeTrue());
31 public void handleCommand(final Namespace ns
, final Manager m
) throws CommandException
{
32 var givenName
= ns
.getString("given-name");
33 var familyName
= ns
.getString("family-name");
34 var about
= ns
.getString("about");
35 var aboutEmoji
= ns
.getString("about-emoji");
36 var avatarPath
= ns
.getString("avatar");
37 boolean removeAvatar
= ns
.getBoolean("remove-avatar");
39 Optional
<File
> avatarFile
= removeAvatar
41 : avatarPath
== null ?
null : Optional
.of(new File(avatarPath
));
44 m
.setProfile(givenName
, familyName
, about
, aboutEmoji
, avatarFile
);
45 } catch (IOException e
) {
46 throw new IOErrorException("Update profile error: " + e
.getMessage());