]> nmode's Git Repositories - signal-cli/commitdiff
Improve command line help
authorAsamK <asamk@gmx.de>
Thu, 20 May 2021 18:54:11 +0000 (20:54 +0200)
committerAsamK <asamk@gmx.de>
Thu, 20 May 2021 18:54:11 +0000 (20:54 +0200)
Fixes #450

27 files changed:
man/signal-cli.1.adoc
src/main/java/org/asamk/signal/App.java
src/main/java/org/asamk/signal/commands/AddDeviceCommand.java
src/main/java/org/asamk/signal/commands/BlockCommand.java
src/main/java/org/asamk/signal/commands/Commands.java
src/main/java/org/asamk/signal/commands/DaemonCommand.java
src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java
src/main/java/org/asamk/signal/commands/JoinGroupCommand.java
src/main/java/org/asamk/signal/commands/LinkCommand.java
src/main/java/org/asamk/signal/commands/ListContactsCommand.java
src/main/java/org/asamk/signal/commands/ListDevicesCommand.java
src/main/java/org/asamk/signal/commands/ListGroupsCommand.java
src/main/java/org/asamk/signal/commands/ListIdentitiesCommand.java
src/main/java/org/asamk/signal/commands/QuitGroupCommand.java
src/main/java/org/asamk/signal/commands/ReceiveCommand.java
src/main/java/org/asamk/signal/commands/RegisterCommand.java
src/main/java/org/asamk/signal/commands/RemoveDeviceCommand.java
src/main/java/org/asamk/signal/commands/RemovePinCommand.java
src/main/java/org/asamk/signal/commands/SendCommand.java
src/main/java/org/asamk/signal/commands/SetPinCommand.java
src/main/java/org/asamk/signal/commands/TrustCommand.java
src/main/java/org/asamk/signal/commands/UnblockCommand.java
src/main/java/org/asamk/signal/commands/UpdateContactCommand.java
src/main/java/org/asamk/signal/commands/UpdateGroupCommand.java
src/main/java/org/asamk/signal/commands/UpdateProfileCommand.java
src/main/java/org/asamk/signal/commands/UploadStickerPackCommand.java
src/main/java/org/asamk/signal/commands/VerifyCommand.java

index ed498eaf417bdeb6deaa37fdb6d390f84b6cd646..e73e7cdc21b8e13625f05448c08e3dd3e7d1789e 100644 (file)
@@ -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
 
index 54c475b163305a578e7335c7bae8e64b96a3b04a..86d9a9719ad94cc298a710ca75ec22f93d1c9d74 100644 (file)
@@ -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);
 
index 7a66babfe8a0ba06603c4c4f0769a258ba731bcc..83952aa39a1c70eeed5e6a27192f92edc1341976 100644 (file)
@@ -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.");
index 19466c584c1cc9e1120dc95cf69a48e20297a507..f94dfde44bd065e49dbb28b4bb4660e14783e46d 100644 (file)
@@ -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
index c79ba239cdc5a02c0720abda8fdb5ba4173c11b3..a068405a65d3bf281a27630879b4345c417ba640 100644 (file)
@@ -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<String, Command> commands = new HashMap<>();
+    private static final Map<String, Command> commands = new TreeMap<>();
 
     static {
         addCommand("addDevice", new AddDeviceCommand());
index f54f3bf67b03488427926a08a3a006fe844aa415..334d9adbf415e2b042deabab6acc9538e5c42220 100644 (file)
@@ -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.");
index 69140b239d3d90b0bbcb52d0efb4b747dce1bbed..e6fc7c65a82706aad87991d5e56bac66469bfe3a 100644 (file)
@@ -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());
index 1fc38c7bfa553db0f9ad18c0b6ca512690b3c1f4..d501c398b775f7099f531baf911a534f39169f73 100644 (file)
@@ -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.");
     }
 
index 4090e9ecd20823ff64695061c23eea1d048d8295..88493d3f73a482eff7a0e47401499a4e36016a5c 100644 (file)
@@ -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.");
     }
 
index 9cfe590291f857affd23de99c26de6384323ee33..a546fc6e900bf02066fee4fca1bf53f333e66f1f 100644 (file)
@@ -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
index d6c59498302e746795e9b57b8cff0bc0ffc872ac..0f8b58198b783744b03f57297fefbdf84f66ed6f 100644 (file)
@@ -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
index 379300b9a4d68fd2bbaa9b0905a07f889db37ccd..3735419065aa35b56be5e7b71b96590e2eeb869c 100644 (file)
@@ -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
index 78bd65765084d2ea7ce1130896020d0f27a80326..2029d6b18f2aacbaeec3a4fa7ebdf5af46fca5e4 100644 (file)
@@ -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.");
     }
 
index 6bc306988f1cc096f3c1b1119814111aca1b46b0..488c4100effe92522ed199ac4bee7d4ea218c25d 100644 (file)
@@ -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("*")
index 47f9aa842c161a8e36817d5a8d7e215dcce331e6..acb3a66289b2d4c0ac929e7863eab84cacd7e1f1 100644 (file)
@@ -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)
index a4c613afc09a0e78c525eebf8665aeb21203220f..ba25b0dd9d28c187bd2f5f0e23de97342717b62c 100644 (file)
@@ -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.");
index 6185cafce931a66ab1e06606c90c6275b87e67c6..4de93c4523ccd564d25e75c0bed0637b8ca25b61 100644 (file)
@@ -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)
index 03d8d7cba9fd689d89c42ad8cc6e016ed6484a29..ebf3cf0729568cdc38c2449fa68bf3be7817e293 100644 (file)
@@ -16,6 +16,7 @@ public class RemovePinCommand implements LocalCommand {
 
     @Override
     public void attachToSubparser(final Subparser subparser) {
+        subparser.help("Remove the registration lock pin.");
     }
 
     @Override
index 312ec802c8dd91cd35d9eb2ee2301cca3a6ac7b2..90aaa09a492dd7006ea8834113f27059e368eeaf 100644 (file)
@@ -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.");
index 56b4b8a4d61ca3a99dd734d931351f1aa405144c..e0af992b8771b45547e3ec33f5c2c917fd125ae0 100644 (file)
@@ -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)");
     }
index d6debf86d4feb22522c5a5c85df9c3cfb82624b6..7f303dbb3034a6df73ed9581b731a9c1126d79b1 100644 (file)
@@ -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")
index 4a208f82b434cef66b2525cc7795b60de0ccda46..824f1fcf36e4cdfc975f1e02756a39d7ad737d40 100644 (file)
@@ -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
index ade7cbd33e76cfd34546aa89ee330bf60ed0699c..6192af67b1edb65c98f08a3726020585b80829c3 100644 (file)
@@ -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
index 61d5a68a8b4604077806e469717cc76dcafd1c2b..931ad76371216170cf51ce7e64dd60c738ab8508 100644 (file)
@@ -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.");
index c2712adba5f939058458c3d93e2a6328fb574564..d8b9c6c767fbb93c7d6a441bf07e8434a5a7ba5e 100644 (file)
@@ -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
index 1ed14e213e1d0eb383874d1778931842d950e105..a484675785d7cbb80638efc75d185990ee8ac55d 100644 (file)
@@ -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.");
     }
index 151d966a5b6c5638cc92c5e237b0d1cf3d843bdb..b580be2abb19c7bf2becf17f7187aa975af79dd4 100644 (file)
@@ -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)");
     }