command: use register_commands for handlers

Use register_commands() to register low-level command handlers,
adding a builtin_command_handlers declaration that is easy to understand.
Splits help and usage information into their appropriate fields.
This commit is contained in:
Zachary T Welch 2009-11-20 13:36:07 -08:00
parent d107f71c50
commit 25a7ac2c75
1 changed files with 34 additions and 17 deletions

View File

@ -900,6 +900,39 @@ COMMAND_HANDLER(handle_sleep_command)
return ERROR_OK;
}
static const struct command_registration command_builtin_handlers[] = {
{
.name = "add_help_text",
.handler = &handle_help_add_command,
.mode = COMMAND_ANY,
.help = "add new command help text",
.usage = "<command> [...] <help_text>]",
},
{
.name = "sleep",
.handler = &handle_sleep_command,
.mode = COMMAND_ANY,
.help = "sleep for n milliseconds. "
"\"busy\" will busy wait",
.usage = "<n> [busy]",
},
{
.name = "help",
.handler = &handle_help_command,
.mode = COMMAND_ANY,
.help = "show built-in command help",
.usage = "[<command_name> ...]",
},
{
.name = "usage",
.handler = &handle_usage_command,
.mode = COMMAND_ANY,
.help = "show command usage",
.usage = "[<command_name> ...]",
},
COMMAND_REGISTRATION_DONE
};
struct command_context* command_init(const char *startup_tcl)
{
struct command_context* context = malloc(sizeof(struct command_context));
@ -959,10 +992,7 @@ struct command_context* command_init(const char *startup_tcl)
interp->cb_fflush = openocd_jim_fflush;
interp->cb_fgets = openocd_jim_fgets;
COMMAND_REGISTER(context, NULL, "add_help_text",
handle_help_add_command, COMMAND_ANY,
"<command> [...] <help_text>] - "
"add new command help text");
register_commands(context, NULL, command_builtin_handlers);
#if !BUILD_ECOSBOARD
Jim_EventLoopOnLoad(interp);
@ -976,19 +1006,6 @@ struct command_context* command_init(const char *startup_tcl)
}
Jim_DeleteAssocData(interp, "context");
COMMAND_REGISTER(context, NULL, "sleep",
handle_sleep_command, COMMAND_ANY,
"<n> [busy] - sleep for n milliseconds. "
"\"busy\" means busy wait");
COMMAND_REGISTER(context, NULL, "help",
&handle_help_command, COMMAND_ANY,
"[<command_name> ...] - show built-in command help");
COMMAND_REGISTER(context, NULL, "usage",
&handle_usage_command, COMMAND_ANY,
"[<command_name> ...] | "
"show command usage");
return context;
}