Добавить справочную документацию для новой команды, загруженной из внешнего модуля redis в redis-cli - PullRequest
0 голосов
/ 12 апреля 2019

Подсказки по командам в Redis-Cli хранятся в redis/src/help.h.

Я хотел бы предоставить свою помощь для команд, загружаемых через модуль redis (используя loadmodule).Я мог бы найти соответствующую информацию из Модули Redis: введение в API

Есть ли у вас какие-либо предложения?

1 Ответ

1 голос
/ 12 апреля 2019

Я проверил redis/src/redis-cli.c, помощь создается во время компиляции. В настоящее время нет возможности сделать это.

static void cliInitHelp(void) {
    int commandslen = sizeof(commandHelp)/sizeof(struct commandHelp);
    int groupslen = sizeof(commandGroups)/sizeof(char*);
    int i, len, pos = 0;
    helpEntry tmp;

    helpEntriesLen = len = commandslen+groupslen;
    helpEntries = zmalloc(sizeof(helpEntry)*len);

    for (i = 0; i < groupslen; i++) {
        tmp.argc = 1;
        tmp.argv = zmalloc(sizeof(sds));
        tmp.argv[0] = sdscatprintf(sdsempty(),"@%s",commandGroups[i]);
        tmp.full = tmp.argv[0];
        tmp.type = CLI_HELP_GROUP;
        tmp.org = NULL;
        helpEntries[pos++] = tmp;
    }

    for (i = 0; i < commandslen; i++) {
        tmp.argv = sdssplitargs(commandHelp[i].name,&tmp.argc);
        tmp.full = sdsnew(commandHelp[i].name);
        tmp.type = CLI_HELP_COMMAND;
        tmp.org = &commandHelp[i];
        helpEntries[pos++] = tmp;
    }
}

Разработчики модуля Redis не должны записывать документ команды своего модуля в redis/src/help/h. Я бы предложил следующее:

  1. Используя новую функцию API модуля, разработчик модуля регистрирует новую документацию команды (состоящую из синтаксиса команды, сводки, поскольку, группы) в системный хеш.

  2. redis-cli считывает дополнительную командную документацию из системного хэша, чтобы заполнить helpEntries[].

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...