diff --git a/lightningd/jsonrpc.c b/lightningd/jsonrpc.c index 39223f761b86..626e1f874a06 100644 --- a/lightningd/jsonrpc.c +++ b/lightningd/jsonrpc.c @@ -62,7 +62,7 @@ static void json_help(struct command *cmd, static const struct json_command help_command = { "help", json_help, - "List available commands, or give verbose help on one command.", + "List available commands, or give verbose help on one {command}.", .verbose = "help [command]\n" "Without [command]:\n" @@ -196,7 +196,10 @@ static void json_help(struct command *cmd, struct json_result *response = new_json_result(cmd); struct json_command **cmdlist = get_cmdlist(); const jsmntok_t *cmdtok; + char *usage; + /* FIXME: This is never called with a command parameter because lightning-cli + * attempts to launch the man page and then exits. */ if (!param(cmd, buffer, params, p_opt("command", json_tok_tok, &cmdtok), NULL)) @@ -231,11 +234,15 @@ static void json_help(struct command *cmd, return; } + cmd->mode = CMD_USAGE; json_array_start(response, "help"); for (i = 0; i < num_cmdlist; i++) { + cmdlist[i]->dispatch(cmd, NULL, NULL); + usage = tal_fmt(cmd, "%s %s", cmdlist[i]->name, + cmd->usage); json_add_object(response, "command", JSMN_STRING, - cmdlist[i]->name, + usage, "description", JSMN_STRING, cmdlist[i]->description, NULL); diff --git a/lightningd/param.c b/lightningd/param.c index c1480d7a5a1d..0618db79c335 100644 --- a/lightningd/param.c +++ b/lightningd/param.c @@ -244,7 +244,7 @@ static bool param_arr(struct command *cmd, const char *buffer, { #if DEVELOPER if (!check_params(params)) { - command_fail(cmd, PARAM_DEV_ERROR, "developer error"); + command_fail(cmd, PARAM_DEV_ERROR, "developer error: check_params"); return false; } #endif @@ -271,7 +271,8 @@ bool param(struct command *cmd, const char *buffer, param_cbx cbx = va_arg(ap, param_cbx); void *arg = va_arg(ap, void *); if (!param_add(¶ms, name, required, cbx, arg)) { - command_fail(cmd, PARAM_DEV_ERROR, "developer error"); + command_fail(cmd, PARAM_DEV_ERROR, + "developer error: param_add %s", name); va_end(ap); return false; } diff --git a/tests/test_misc.py b/tests/test_misc.py index c57f6a44ed43..177adac6ec8a 100644 --- a/tests/test_misc.py +++ b/tests/test_misc.py @@ -622,7 +622,7 @@ def test_cli(node_factory): .format(l1.daemon.lightning_dir), 'help']).decode('utf-8') # Test some known output. - assert 'help\n List available commands, or give verbose help on one command' in out + assert 'help [command]\n List available commands, or give verbose help on one {command}' in out # Test JSON output. out = subprocess.check_output(['cli/lightning-cli',