diff options
author | Holger Schurig <holgerschurig@gmail.com> | 2014-05-13 10:28:42 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2014-05-14 10:03:43 +0200 |
commit | f1f532084a6e9ee8225f047353999b459455df7e (patch) | |
tree | f2b8b1f25c5c630209c6970e3a7ce57a3d55d367 /common/command.c | |
parent | ab23d0bb3f66cfb7a97a8aa6b8007687ed7a6925 (diff) | |
download | barebox-f1f532084a6e9ee8225f047353999b459455df7e.tar.gz barebox-f1f532084a6e9ee8225f047353999b459455df7e.tar.xz |
commands: harmonize in-barebox documentation
This patch does probably too much, but it's hard (and very
cumbersome/time consuming) to break it out. What is does is this:
* each command has one short description, e.g. "list MUX configuration"
* made sure the short descriptions start lowercase
* each command has one usage. That string contains just the
options, e.g. "[-npn]". It's not part of the long help text.
* that is, it doesn't say "[OPTIONS]" anymore, every usable option
is listed by character in this (short) option string (the long
description is in the long help text, as before)
* help texts have been reworked, to make them
- sometimes smaller
- sometimes describe the options better
- more often present themselves in a nicer format
* all long help texts are now created with BUSYBOX_CMD_HELP_
macros, no more 'static const __maybe_unused char cmd_foobar_help[]'
* made sure the long help texts starts uppercase
* because cmdtp->name and cmdtp->opts together provide the new usage,
all "Usage: foobar" texts have been removed from the long help texts
* BUSYBOX_CMD_HELP_TEXT() provides the trailing newline by itself, this
is nicer in the source code
* BUSYBOX_CMD_HELP_OPT() provides the trailing newline by itself
* made sure no line gets longer than 77 characters
* delibertely renamed cmdtp->usage, so that we can get compile-time
errors (e.g. in out-of-tree modules that use register_command()
* the 'help' command can now always emit the usage, even without
compiled long help texts
* 'help -v' gives a list of commands with their short description, this
is similar like the old "help" command before my patchset
* 'help -a' gives out help of all commands
Signed-off-by: Holger Schurig <holgerschurig@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'common/command.c')
-rw-r--r-- | common/command.c | 34 |
1 files changed, 14 insertions, 20 deletions
diff --git a/common/command.c b/common/command.c index 7f2b777939..61191c2d62 100644 --- a/common/command.c +++ b/common/command.c @@ -36,22 +36,18 @@ EXPORT_SYMBOL(command_list); void barebox_cmd_usage(struct command *cmdtp) { -#ifdef CONFIG_LONGHELP - /* found - print (long) help info */ - if (cmdtp->help) { - puts (cmdtp->help); - } else { - puts (cmdtp->name); - putchar (' '); - puts ("- No help available.\n"); - } - putchar ('\n'); -#else /* no long help available */ - if (cmdtp->usage) { - puts (cmdtp->usage); - puts("\n"); - } -#endif /* CONFIG_LONGHELP */ + putchar('\n'); + if (cmdtp->desc) + printf("%s - %s\n\n", cmdtp->name, cmdtp->desc); + if (cmdtp->opts) + printf("Usage: %s %s\n\n", cmdtp->name, cmdtp->opts); +#ifdef CONFIG_LONGHELP + /* found - print (long) help info */ + if (cmdtp->help) { + puts(cmdtp->help); + putchar('\n'); + } +#endif } EXPORT_SYMBOL(barebox_cmd_usage); @@ -108,14 +104,13 @@ int register_command(struct command *cmd) if (cmd->aliases) { char **aliases = (char**)cmd->aliases; while(*aliases) { - char *usage = "alias for "; struct command *c = xzalloc(sizeof(struct command)); memcpy(c, cmd, sizeof(struct command)); c->name = *aliases; - c->usage = xmalloc(strlen(usage) + strlen(cmd->name) + 1); - sprintf((char*)c->usage, "%s%s", usage, cmd->name); + c->desc = cmd->desc; + c->opts = cmd->opts; c->aliases = NULL; @@ -163,4 +158,3 @@ static int init_command_list(void) } late_initcall(init_command_list); - |