From: AsamK Date: Thu, 20 May 2021 18:54:11 +0000 (+0200) Subject: Improve command line help X-Git-Tag: v0.8.4~23 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/b8a0901fbd9071f54d97e8d61fdabdfc0d4f0a7d?ds=sidebyside Improve command line help Fixes #450 --- diff --git a/man/signal-cli.1.adoc b/man/signal-cli.1.adoc index ed498eaf..e73e7cdc 100644 --- a/man/signal-cli.1.adoc +++ b/man/signal-cli.1.adoc @@ -135,14 +135,14 @@ You will need the full uri enclosed in quotation marks, such as "tsdevice:/?uuid === listDevices -Show a list of connected devices. +Show a list of linked devices. === removeDevice -Remove a connected device. +Remove a linked device. Only works, if this is the master device. -*-d* DEVICEID, *--device-id* DEVICEID:: +*-d* DEVICE_ID, *--device-id* DEVICE_ID:: Specify the device you want to remove. Use listDevices to see the deviceIds. @@ -293,6 +293,10 @@ In json mode this is outputted as an list of objects and is always in detailed m *-d*, *--detailed*:: Include the list of members of each group and the group invite link. +=== listContacts + +Show a list of known contacts with names. + === listIdentities List all known identity keys and their trust status, fingerprint and safety number. @@ -447,6 +451,9 @@ signal-cli -u USERNAME updateGroup -n "Group name" -m [MEMBER [MEMBER ...]] Add member to a group:: signal-cli -u USERNAME updateGroup -g GROUP_ID -m "NEW_MEMBER" +Accept a group invitation:: +signal-cli -u USERNAME updateGroup -g GROUP_ID + Leave a group:: signal-cli -u USERNAME quitGroup -g GROUP_ID diff --git a/src/main/java/org/asamk/signal/App.java b/src/main/java/org/asamk/signal/App.java index 54c475b1..86d9a971 100644 --- a/src/main/java/org/asamk/signal/App.java +++ b/src/main/java/org/asamk/signal/App.java @@ -70,7 +70,7 @@ public class App { .setDefault(OutputType.PLAIN_TEXT); parser.addArgument("--service-environment") - .help("Choose the server environment to use, SANDBOX or LIVE.") + .help("Choose the server environment to use.") .type(Arguments.enumStringType(ServiceEnvironmentCli.class)) .setDefault(ServiceEnvironmentCli.LIVE); diff --git a/src/main/java/org/asamk/signal/commands/AddDeviceCommand.java b/src/main/java/org/asamk/signal/commands/AddDeviceCommand.java index 7a66babf..83952aa3 100644 --- a/src/main/java/org/asamk/signal/commands/AddDeviceCommand.java +++ b/src/main/java/org/asamk/signal/commands/AddDeviceCommand.java @@ -22,6 +22,7 @@ public class AddDeviceCommand implements LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Link another device to this device. Only works, if this is the master device."); subparser.addArgument("--uri") .required(true) .help("Specify the uri contained in the QR code shown by the new device."); diff --git a/src/main/java/org/asamk/signal/commands/BlockCommand.java b/src/main/java/org/asamk/signal/commands/BlockCommand.java index 19466c58..f94dfde4 100644 --- a/src/main/java/org/asamk/signal/commands/BlockCommand.java +++ b/src/main/java/org/asamk/signal/commands/BlockCommand.java @@ -20,9 +20,9 @@ public class BlockCommand implements LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Block the given contacts or groups (no messages will be received)"); subparser.addArgument("contact").help("Contact number").nargs("*"); subparser.addArgument("-g", "--group").help("Group ID").nargs("*"); - subparser.help("Block the given contacts or groups (no messages will be received)"); } @Override diff --git a/src/main/java/org/asamk/signal/commands/Commands.java b/src/main/java/org/asamk/signal/commands/Commands.java index c79ba239..a068405a 100644 --- a/src/main/java/org/asamk/signal/commands/Commands.java +++ b/src/main/java/org/asamk/signal/commands/Commands.java @@ -1,11 +1,11 @@ package org.asamk.signal.commands; -import java.util.HashMap; import java.util.Map; +import java.util.TreeMap; public class Commands { - private static final Map commands = new HashMap<>(); + private static final Map commands = new TreeMap<>(); static { addCommand("addDevice", new AddDeviceCommand()); diff --git a/src/main/java/org/asamk/signal/commands/DaemonCommand.java b/src/main/java/org/asamk/signal/commands/DaemonCommand.java index f54f3bf6..334d9adb 100644 --- a/src/main/java/org/asamk/signal/commands/DaemonCommand.java +++ b/src/main/java/org/asamk/signal/commands/DaemonCommand.java @@ -29,6 +29,7 @@ public class DaemonCommand implements MultiLocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Run in daemon mode and provide an experimental dbus interface."); subparser.addArgument("--system") .action(Arguments.storeTrue()) .help("Use DBus system bus instead of user bus."); diff --git a/src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java b/src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java index 69140b23..e6fc7c65 100644 --- a/src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java +++ b/src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java @@ -25,8 +25,8 @@ public class GetUserStatusCommand implements LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { - subparser.addArgument("number").help("Phone number").nargs("+"); subparser.help("Check if the specified phone number/s have been registered"); + subparser.addArgument("number").help("Phone number").nargs("+"); subparser.addArgument("--json") .help("WARNING: This parameter is now deprecated! Please use the global \"--output=json\" option instead.\n\nOutput received messages in json format, one json object per line.") .action(Arguments.storeTrue()); diff --git a/src/main/java/org/asamk/signal/commands/JoinGroupCommand.java b/src/main/java/org/asamk/signal/commands/JoinGroupCommand.java index 1fc38c7b..d501c398 100644 --- a/src/main/java/org/asamk/signal/commands/JoinGroupCommand.java +++ b/src/main/java/org/asamk/signal/commands/JoinGroupCommand.java @@ -22,6 +22,7 @@ public class JoinGroupCommand implements LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Join a group via an invitation link."); subparser.addArgument("--uri").required(true).help("Specify the uri with the group invitation link."); } diff --git a/src/main/java/org/asamk/signal/commands/LinkCommand.java b/src/main/java/org/asamk/signal/commands/LinkCommand.java index 4090e9ec..88493d3f 100644 --- a/src/main/java/org/asamk/signal/commands/LinkCommand.java +++ b/src/main/java/org/asamk/signal/commands/LinkCommand.java @@ -21,6 +21,7 @@ public class LinkCommand implements ProvisioningCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Link to an existing device, instead of registering a new number."); subparser.addArgument("-n", "--name").help("Specify a name to describe this new device."); } diff --git a/src/main/java/org/asamk/signal/commands/ListContactsCommand.java b/src/main/java/org/asamk/signal/commands/ListContactsCommand.java index 9cfe5902..a546fc6e 100644 --- a/src/main/java/org/asamk/signal/commands/ListContactsCommand.java +++ b/src/main/java/org/asamk/signal/commands/ListContactsCommand.java @@ -12,6 +12,7 @@ public class ListContactsCommand implements LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Show a list of known contacts with names."); } @Override diff --git a/src/main/java/org/asamk/signal/commands/ListDevicesCommand.java b/src/main/java/org/asamk/signal/commands/ListDevicesCommand.java index d6c59498..0f8b5819 100644 --- a/src/main/java/org/asamk/signal/commands/ListDevicesCommand.java +++ b/src/main/java/org/asamk/signal/commands/ListDevicesCommand.java @@ -21,6 +21,7 @@ public class ListDevicesCommand implements LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Show a list of linked devices."); } @Override diff --git a/src/main/java/org/asamk/signal/commands/ListGroupsCommand.java b/src/main/java/org/asamk/signal/commands/ListGroupsCommand.java index 379300b9..37354190 100644 --- a/src/main/java/org/asamk/signal/commands/ListGroupsCommand.java +++ b/src/main/java/org/asamk/signal/commands/ListGroupsCommand.java @@ -60,11 +60,10 @@ public class ListGroupsCommand implements LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("List group information including names, ids, active status, blocked status and members"); subparser.addArgument("-d", "--detailed") .action(Arguments.storeTrue()) .help("List the members and group invite links of each group. If output=json, then this is always set"); - - subparser.help("List group information including names, ids, active status, blocked status and members"); } @Override diff --git a/src/main/java/org/asamk/signal/commands/ListIdentitiesCommand.java b/src/main/java/org/asamk/signal/commands/ListIdentitiesCommand.java index 78bd6576..2029d6b1 100644 --- a/src/main/java/org/asamk/signal/commands/ListIdentitiesCommand.java +++ b/src/main/java/org/asamk/signal/commands/ListIdentitiesCommand.java @@ -35,6 +35,7 @@ public class ListIdentitiesCommand implements LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("List all known identity keys and their trust status, fingerprint and safety number."); subparser.addArgument("-n", "--number").help("Only show identity keys for the given phone number."); } diff --git a/src/main/java/org/asamk/signal/commands/QuitGroupCommand.java b/src/main/java/org/asamk/signal/commands/QuitGroupCommand.java index 6bc30698..488c4100 100644 --- a/src/main/java/org/asamk/signal/commands/QuitGroupCommand.java +++ b/src/main/java/org/asamk/signal/commands/QuitGroupCommand.java @@ -26,6 +26,7 @@ public class QuitGroupCommand implements LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Send a quit group message to all group members and remove self from member list."); subparser.addArgument("-g", "--group").required(true).help("Specify the recipient group ID."); subparser.addArgument("--admin") .nargs("*") diff --git a/src/main/java/org/asamk/signal/commands/ReceiveCommand.java b/src/main/java/org/asamk/signal/commands/ReceiveCommand.java index 47f9aa84..acb3a662 100644 --- a/src/main/java/org/asamk/signal/commands/ReceiveCommand.java +++ b/src/main/java/org/asamk/signal/commands/ReceiveCommand.java @@ -33,6 +33,7 @@ public class ReceiveCommand implements ExtendedDbusCommand, LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Query the server for new messages."); subparser.addArgument("-t", "--timeout") .type(double.class) .setDefault(3.0) diff --git a/src/main/java/org/asamk/signal/commands/RegisterCommand.java b/src/main/java/org/asamk/signal/commands/RegisterCommand.java index a4c613af..ba25b0dd 100644 --- a/src/main/java/org/asamk/signal/commands/RegisterCommand.java +++ b/src/main/java/org/asamk/signal/commands/RegisterCommand.java @@ -16,8 +16,9 @@ public class RegisterCommand implements RegistrationCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Register a phone number with SMS or voice verification."); subparser.addArgument("-v", "--voice") - .help("The verification should be done over voice, not sms.") + .help("The verification should be done over voice, not SMS.") .action(Arguments.storeTrue()); subparser.addArgument("--captcha") .help("The captcha token, required if registration failed with a captcha required error."); diff --git a/src/main/java/org/asamk/signal/commands/RemoveDeviceCommand.java b/src/main/java/org/asamk/signal/commands/RemoveDeviceCommand.java index 6185cafc..4de93c45 100644 --- a/src/main/java/org/asamk/signal/commands/RemoveDeviceCommand.java +++ b/src/main/java/org/asamk/signal/commands/RemoveDeviceCommand.java @@ -13,6 +13,7 @@ public class RemoveDeviceCommand implements LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Remove a linked device."); subparser.addArgument("-d", "--device-id", "--deviceId") .type(int.class) .required(true) diff --git a/src/main/java/org/asamk/signal/commands/RemovePinCommand.java b/src/main/java/org/asamk/signal/commands/RemovePinCommand.java index 03d8d7cb..ebf3cf07 100644 --- a/src/main/java/org/asamk/signal/commands/RemovePinCommand.java +++ b/src/main/java/org/asamk/signal/commands/RemovePinCommand.java @@ -16,6 +16,7 @@ public class RemovePinCommand implements LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Remove the registration lock pin."); } @Override diff --git a/src/main/java/org/asamk/signal/commands/SendCommand.java b/src/main/java/org/asamk/signal/commands/SendCommand.java index 312ec802..90aaa09a 100644 --- a/src/main/java/org/asamk/signal/commands/SendCommand.java +++ b/src/main/java/org/asamk/signal/commands/SendCommand.java @@ -28,6 +28,7 @@ public class SendCommand implements DbusCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Send a message to another user or group."); subparser.addArgument("recipient").help("Specify the recipients' phone number.").nargs("*"); final var mutuallyExclusiveGroup = subparser.addMutuallyExclusiveGroup(); mutuallyExclusiveGroup.addArgument("-g", "--group").help("Specify the recipient group ID."); diff --git a/src/main/java/org/asamk/signal/commands/SetPinCommand.java b/src/main/java/org/asamk/signal/commands/SetPinCommand.java index 56b4b8a4..e0af992b 100644 --- a/src/main/java/org/asamk/signal/commands/SetPinCommand.java +++ b/src/main/java/org/asamk/signal/commands/SetPinCommand.java @@ -16,6 +16,7 @@ public class SetPinCommand implements LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Set a registration lock pin, to prevent others from registering this number."); subparser.addArgument("registrationLockPin") .help("The registration lock PIN, that will be required for new registrations (resets after 7 days of inactivity)"); } diff --git a/src/main/java/org/asamk/signal/commands/TrustCommand.java b/src/main/java/org/asamk/signal/commands/TrustCommand.java index d6debf86..7f303dbb 100644 --- a/src/main/java/org/asamk/signal/commands/TrustCommand.java +++ b/src/main/java/org/asamk/signal/commands/TrustCommand.java @@ -16,6 +16,7 @@ public class TrustCommand implements LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Set the trust level of a given number."); subparser.addArgument("number").help("Specify the phone number, for which to set the trust.").required(true); var mutTrust = subparser.addMutuallyExclusiveGroup(); mutTrust.addArgument("-a", "--trust-all-known-keys") diff --git a/src/main/java/org/asamk/signal/commands/UnblockCommand.java b/src/main/java/org/asamk/signal/commands/UnblockCommand.java index 4a208f82..824f1fcf 100644 --- a/src/main/java/org/asamk/signal/commands/UnblockCommand.java +++ b/src/main/java/org/asamk/signal/commands/UnblockCommand.java @@ -20,9 +20,9 @@ public class UnblockCommand implements LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Unblock the given contacts or groups (messages will be received again)"); subparser.addArgument("contact").help("Contact number").nargs("*"); subparser.addArgument("-g", "--group").help("Group ID").nargs("*"); - subparser.help("Unblock the given contacts or groups (messages will be received again)"); } @Override diff --git a/src/main/java/org/asamk/signal/commands/UpdateContactCommand.java b/src/main/java/org/asamk/signal/commands/UpdateContactCommand.java index ade7cbd3..6192af67 100644 --- a/src/main/java/org/asamk/signal/commands/UpdateContactCommand.java +++ b/src/main/java/org/asamk/signal/commands/UpdateContactCommand.java @@ -16,13 +16,13 @@ public class UpdateContactCommand implements LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Update the details of a given contact"); subparser.addArgument("number").help("Contact number"); subparser.addArgument("-n", "--name").required(true).help("New contact name"); subparser.addArgument("-e", "--expiration") .required(false) .type(int.class) .help("Set expiration time of messages (seconds)"); - subparser.help("Update the details of a given contact"); } @Override diff --git a/src/main/java/org/asamk/signal/commands/UpdateGroupCommand.java b/src/main/java/org/asamk/signal/commands/UpdateGroupCommand.java index 61d5a68a..931ad763 100644 --- a/src/main/java/org/asamk/signal/commands/UpdateGroupCommand.java +++ b/src/main/java/org/asamk/signal/commands/UpdateGroupCommand.java @@ -36,6 +36,7 @@ public class UpdateGroupCommand implements DbusCommand, LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Create or update a group."); subparser.addArgument("-g", "--group").help("Specify the recipient group ID."); subparser.addArgument("-n", "--name").help("Specify the new group name."); subparser.addArgument("-d", "--description").help("Specify the new group description."); diff --git a/src/main/java/org/asamk/signal/commands/UpdateProfileCommand.java b/src/main/java/org/asamk/signal/commands/UpdateProfileCommand.java index c2712adb..d8b9c6c7 100644 --- a/src/main/java/org/asamk/signal/commands/UpdateProfileCommand.java +++ b/src/main/java/org/asamk/signal/commands/UpdateProfileCommand.java @@ -16,6 +16,7 @@ public class UpdateProfileCommand implements LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Set a name, about and avatar image for the user profile"); subparser.addArgument("--given-name", "--name").help("New profile (given) name"); subparser.addArgument("--family-name").help("New profile family name (optional)"); subparser.addArgument("--about").help("New profile about text"); @@ -24,8 +25,6 @@ public class UpdateProfileCommand implements LocalCommand { final var avatarOptions = subparser.addMutuallyExclusiveGroup(); avatarOptions.addArgument("--avatar").help("Path to new profile avatar"); avatarOptions.addArgument("--remove-avatar").action(Arguments.storeTrue()); - - subparser.help("Set a name, about and avatar image for the user profile"); } @Override diff --git a/src/main/java/org/asamk/signal/commands/UploadStickerPackCommand.java b/src/main/java/org/asamk/signal/commands/UploadStickerPackCommand.java index 1ed14e21..a4846757 100644 --- a/src/main/java/org/asamk/signal/commands/UploadStickerPackCommand.java +++ b/src/main/java/org/asamk/signal/commands/UploadStickerPackCommand.java @@ -21,6 +21,7 @@ public class UploadStickerPackCommand implements LocalCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Upload a new sticker pack, consisting of a manifest file and the stickers images."); subparser.addArgument("path") .help("The path of the manifest.json or a zip file containing the sticker pack you wish to upload."); } diff --git a/src/main/java/org/asamk/signal/commands/VerifyCommand.java b/src/main/java/org/asamk/signal/commands/VerifyCommand.java index 151d966a..b580be2a 100644 --- a/src/main/java/org/asamk/signal/commands/VerifyCommand.java +++ b/src/main/java/org/asamk/signal/commands/VerifyCommand.java @@ -18,6 +18,7 @@ public class VerifyCommand implements RegistrationCommand { @Override public void attachToSubparser(final Subparser subparser) { + subparser.help("Verify the number using the code received via SMS or voice."); subparser.addArgument("verificationCode").help("The verification code you received via sms or voice call."); subparser.addArgument("-p", "--pin").help("The registration lock PIN, that was set by the user (Optional)"); }