{
.name = "hello",
.mode = COMMAND_ANY,
- .handler = &handle_hello_command,
- .help = "print a warm greetings",
- .usage = "[<name>]",
+ .handler = handle_hello_command,
+ .help = "print a warm greeting",
+ .usage = "[name]",
},
{
.chain = foo_command_handlers,
}
@endcode
-That's it! The command should now be registered and avaiable to scripts.
+Note that the "usage" text should use the same EBNF that's found
+in the User's Guide: literals in 'single quotes', sequences of
+optional parameters in [square brackets], and alternatives in
+(parentheses|with|vertical bars), and so forth. No angle brackets.
+
+That's it! The command should now be registered and available to scripts.
@section primercmdchain Command Chaining
- Else it's a "Config Command" if it must be used before the
configuration stage completes.
- For a "Driver", list its name.
- - Use BNF style regular expressions to define parameters:
+ - Use EBNF style regular expressions to define parameters:
brackets around zero-or-one choices, parentheses around
exactly-one choices.
- Use \@option, \@file, \@var and other mechanisms where appropriate.
.name = "bar",
.handler = &handle_foo_command,
.mode = COMMAND_ANY,
- .usage = "<address> [enable|disable]",
+ .usage = "address ['enable'|'disable']",
.help = "an example command",
},
{
.name = "baz",
.handler = &handle_foo_command,
.mode = COMMAND_ANY,
- .usage = "<address> [enable|disable]",
+ .usage = "address ['enable'|'disable']",
.help = "a sample command",
},
{
const struct command_registration hello_command_handlers[] = {
{
.name = "hello",
- .handler = &handle_hello_command,
+ .handler = handle_hello_command,
.mode = COMMAND_ANY,
.help = "prints a warm welcome",
- .usage = "[<name>]",
+ .usage = "[name]",
},
{
.name = "foo",