hello: use register_commands()

Use new register_commands() with command registration table.
This commit is contained in:
Zachary T Welch 2009-11-21 13:49:00 -08:00
parent 62e5649600
commit e7fd1d3d50
1 changed files with 36 additions and 16 deletions

View File

@ -53,24 +53,36 @@ COMMAND_HANDLER(handle_flag_command)
&foo_flag, "foo flag"); &foo_flag, "foo flag");
} }
static const struct command_registration foo_command_handlers[] = {
{
.name = "bar",
.handler = &handle_foo_command,
.mode = COMMAND_ANY,
.help = "<address> [enable|disable] - an example command",
},
{
.name = "baz",
.handler = &handle_foo_command,
.mode = COMMAND_ANY,
.help = "<address> [enable|disable] - a sample command",
},
{
.name = "flag",
.handler = &handle_flag_command,
.mode = COMMAND_ANY,
.help = "[on|off] - set a flag",
},
COMMAND_REGISTRATION_DONE
};
int foo_register_commands(struct command_context *cmd_ctx) int foo_register_commands(struct command_context *cmd_ctx)
{ {
// register several commands under the foo command // register several commands under the foo command
struct command *cmd = COMMAND_REGISTER(cmd_ctx, NULL, "foo", struct command *cmd = COMMAND_REGISTER(cmd_ctx, NULL, "foo",
NULL, COMMAND_ANY, "foo: command handler skeleton"); NULL, COMMAND_ANY, "example command handler skeleton");
COMMAND_REGISTER(cmd_ctx, cmd, "bar",
&handle_foo_command, COMMAND_ANY,
"<address> [enable|disable] - an example command");
COMMAND_REGISTER(cmd_ctx, cmd, "baz",
&handle_foo_command, COMMAND_ANY,
"<address> [enable|disable] - a sample command");
COMMAND_REGISTER(cmd_ctx, cmd, "flag", return register_commands(cmd_ctx, cmd, foo_command_handlers);
&handle_flag_command, COMMAND_ANY,
"[on|off] - set a flag");
return ERROR_OK;
} }
static COMMAND_HELPER(handle_hello_args, const char **sep, const char **name) static COMMAND_HELPER(handle_hello_args, const char **sep, const char **name)
@ -99,12 +111,20 @@ COMMAND_HANDLER(handle_hello_command)
return retval; return retval;
} }
static const struct command_registration hello_command_handlers[] = {
{
.name = "hello",
.handler = &handle_hello_command,
.mode = COMMAND_ANY,
.help = "prints a warm welcome",
.usage = "[<name>]",
},
COMMAND_REGISTRATION_DONE
};
int hello_register_commands(struct command_context *cmd_ctx) int hello_register_commands(struct command_context *cmd_ctx)
{ {
foo_register_commands(cmd_ctx); foo_register_commands(cmd_ctx);
struct command *cmd = COMMAND_REGISTER(cmd_ctx, NULL, "hello", return register_commands(cmd_ctx, NULL, hello_command_handlers);
&handle_hello_command, COMMAND_ANY,
"[<name>] - prints a warm welcome");
return cmd ? ERROR_OK : -ENOMEM;
} }