summaryrefslogtreecommitdiff
path: root/src/pubsub.c
diff options
context:
space:
mode:
authorItamar Haber <itamar@redislabs.com>2017-11-27 17:57:44 +0200
committerItamar Haber <itamar@redislabs.com>2017-11-28 21:15:45 +0200
commit59d52f7fabb48c3a6ebaac869ce3d6e5f3dc704f (patch)
treeda2f0adacc6c494f372ecf11f8566d20db79a05f /src/pubsub.c
parent29252391c4856e500277bcd84ae0f57b8e6ca661 (diff)
downloadredis-59d52f7fabb48c3a6ebaac869ce3d6e5f3dc704f.tar.gz
Standardizes the 'help' subcommand
This adds a new `addReplyHelp` helper that's used by commands when returning a help text. The following commands have been touched: DEBUG, OBJECT, COMMAND, PUBSUB, SCRIPT and SLOWLOG. WIP Fix entry command table entry for OBJECT for HELP option. After #4472 the command may have just 2 arguments. Improve OBJECT HELP descriptions. See #4472. WIP 2 WIP 3
Diffstat (limited to 'src/pubsub.c')
-rw-r--r--src/pubsub.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/pubsub.c b/src/pubsub.c
index b6d1167db..8bd6e5d60 100644
--- a/src/pubsub.c
+++ b/src/pubsub.c
@@ -325,8 +325,16 @@ void publishCommand(client *c) {
/* PUBSUB command for Pub/Sub introspection. */
void pubsubCommand(client *c) {
- if (!strcasecmp(c->argv[1]->ptr,"channels") &&
- (c->argc == 2 || c->argc ==3))
+ if (c->argc == 2 && !strcasecmp(c->argv[1]->ptr,"help")) {
+ const char *help[] = {
+ "channels [<pattern>] -- Return the currently active channels matching a pattern (default: all).",
+ "numpat -- Return number of subscriptions to patterns.",
+ "numsub [channel-1 .. channel-N] -- Returns the number of subscribers for the specified channels (excluding patterns, default: none).",
+ NULL
+ };
+ addReplyHelp(c, help);
+ } else if (!strcasecmp(c->argv[1]->ptr,"channels") &&
+ (c->argc == 2 || c->argc == 3))
{
/* PUBSUB CHANNELS [<pattern>] */
sds pat = (c->argc == 2) ? NULL : c->argv[2]->ptr;
@@ -364,8 +372,8 @@ void pubsubCommand(client *c) {
/* PUBSUB NUMPAT */
addReplyLongLong(c,listLength(server.pubsub_patterns));
} else {
- addReplyErrorFormat(c,
- "Unknown PUBSUB subcommand or wrong number of arguments for '%s'",
+ addReplyErrorFormat(c, "Unknown subcommand or wrong number of arguments for '%s'. Try PUBSUB help",
(char*)c->argv[1]->ptr);
+ return;
}
}