Я проверил 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
. Я бы предложил следующее:
Используя новую функцию API модуля, разработчик модуля регистрирует новую документацию команды (состоящую из синтаксиса команды, сводки, поскольку, группы) в системный хеш.
redis-cli
считывает дополнительную командную документацию из системного хэша, чтобы заполнить helpEntries[]
.