summaryrefslogtreecommitdiffstats
path: root/include/command.h
diff options
context:
space:
mode:
authorHolger Schurig <holgerschurig@gmail.com>2014-05-13 10:28:42 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2014-05-14 10:03:43 +0200
commitf1f532084a6e9ee8225f047353999b459455df7e (patch)
treef2b8b1f25c5c630209c6970e3a7ce57a3d55d367 /include/command.h
parentab23d0bb3f66cfb7a97a8aa6b8007687ed7a6925 (diff)
downloadbarebox-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 'include/command.h')
-rw-r--r--include/command.h15
1 files changed, 9 insertions, 6 deletions
diff --git a/include/command.h b/include/command.h
index 15ce8d4862..347ad2f3ec 100644
--- a/include/command.h
+++ b/include/command.h
@@ -47,7 +47,8 @@ struct command {
/* Implementation function */
int (*cmd)(int, char *[]);
int (*complete)(struct string_list *sl, char *instr);
- const char *usage; /* Usage message (short) */
+ const char *desc; /* Short command description, start with lowercase */
+ const char *opts; /* command options */
struct list_head list; /* List of commands */
uint32_t group;
@@ -74,7 +75,7 @@ void barebox_cmd_usage(struct command *cmdtp);
#define COMMAND_ERROR 1
#define COMMAND_ERROR_USAGE 2
-/* Note: keep this list in sync with commands/command.c */
+/* Note: keep this list in sync with commands/help.c */
#define CMD_GRP_INFO 1
#define CMD_GRP_BOOT 2
#define CMD_GRP_ENV 3
@@ -110,10 +111,8 @@ const struct command __barebox_cmd_##_name \
#define BAREBOX_CMD_HELP_START(_name) \
static const __maybe_unused char cmd_##_name##_help[] =
-#define BAREBOX_CMD_HELP_USAGE(_name) "Usage: " _name
-#define BAREBOX_CMD_HELP_SHORT(_text) _text
-#define BAREBOX_CMD_HELP_OPT(_opt, _desc) _opt "\t" _desc
-#define BAREBOX_CMD_HELP_TEXT(_text) _text
+#define BAREBOX_CMD_HELP_OPT(_opt, _desc) "\t" _opt "\t" _desc "\n"
+#define BAREBOX_CMD_HELP_TEXT(_text) _text "\n"
#define BAREBOX_CMD_HELP_END ;
#ifdef CONFIG_LONGHELP
@@ -124,6 +123,10 @@ static const __maybe_unused char cmd_##_name##_help[] =
#define BAREBOX_CMD_GROUP(grp) .group = grp,
+#define BAREBOX_CMD_DESC(text) .desc = text,
+
+#define BAREBOX_CMD_OPTS(text) .opts = text,
+
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
int register_command(struct command *);