Mercurial > hg > toybox
annotate toys/other/help.c @ 1753:0f940c4f9658 draft
Promote runcon to android (and add an android menu).
author | Rob Landley <rob@landley.net> |
---|---|
date | Mon, 23 Mar 2015 13:45:47 -0500 |
parents | 4654f241ccbe |
children |
rev | line source |
---|---|
694
786841fdb1e0
Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents:
656
diff
changeset
|
1 /* help.c - Show help for toybox commands |
194
30a6db5a95c2
Add comments about SUSv3 specs (or lack thereof).
Rob Landley <rob@landley.net>
parents:
186
diff
changeset
|
2 * |
233
d4176f3f3835
Zap toys/Config.in and instead create generated/Config.in from contents of
Rob Landley <rob@landley.net>
parents:
232
diff
changeset
|
3 * Copyright 2007 Rob Landley <rob@landley.net> |
d4176f3f3835
Zap toys/Config.in and instead create generated/Config.in from contents of
Rob Landley <rob@landley.net>
parents:
232
diff
changeset
|
4 * |
656
6df4ccc0acbe
Regularize command headers, update links to standards documents.
Rob Landley <rob@landley.net>
parents:
653
diff
changeset
|
5 * Often a shell builtin. |
233
d4176f3f3835
Zap toys/Config.in and instead create generated/Config.in from contents of
Rob Landley <rob@landley.net>
parents:
232
diff
changeset
|
6 |
1232
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
7 USE_HELP(NEWTOY(help, ""USE_HELP_EXTRAS("ah"), TOYFLAG_BIN)) |
234
163498bf547b
Move NEWTOY() list from end of toylist.h to generated/newtoys.h.
Rob Landley <rob@landley.net>
parents:
233
diff
changeset
|
8 |
233
d4176f3f3835
Zap toys/Config.in and instead create generated/Config.in from contents of
Rob Landley <rob@landley.net>
parents:
232
diff
changeset
|
9 config HELP |
694
786841fdb1e0
Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents:
656
diff
changeset
|
10 bool "help" |
786841fdb1e0
Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents:
656
diff
changeset
|
11 default y |
858
34ac05521d94
Move guts of help command into show_help() in lib/help.c, with config TOYBOX_HELP controlling infrastructure.
Rob Landley <rob@landley.net>
parents:
694
diff
changeset
|
12 depends on TOYBOX_HELP |
694
786841fdb1e0
Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents:
656
diff
changeset
|
13 help |
786841fdb1e0
Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents:
656
diff
changeset
|
14 usage: help [command] |
233
d4176f3f3835
Zap toys/Config.in and instead create generated/Config.in from contents of
Rob Landley <rob@landley.net>
parents:
232
diff
changeset
|
15 |
694
786841fdb1e0
Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents:
656
diff
changeset
|
16 Show usage information for toybox commands. |
786841fdb1e0
Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents:
656
diff
changeset
|
17 Run "toybox" with no arguments for a list of available commands. |
1232
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
18 |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
19 config HELP_EXTRAS |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
20 bool "help -ah" |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
21 default y |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
22 depends on TOYBOX |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
23 depends on HELP |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
24 help |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
25 usage: help [-ah] |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
26 |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
27 -a All commands |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
28 -h HTML output |
233
d4176f3f3835
Zap toys/Config.in and instead create generated/Config.in from contents of
Rob Landley <rob@landley.net>
parents:
232
diff
changeset
|
29 */ |
694
786841fdb1e0
Reindent to two spaces per level. Remove vi: directives that haven't worked right in years (ubuntu broke its' vim implementation). Remove trailing spaces. Add/remove blank lines. Re-wordwrap in places. Update documentation with new coding style.
Rob Landley <rob@landley.net>
parents:
656
diff
changeset
|
30 |
1232
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
31 #define FOR_help |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
32 #include "toys.h" |
139
fb0745eec453
Add "help" command. (Building help/help.h requires python, but I'll ship
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
33 |
1232
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
34 static void do_help(struct toy_list *t) |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
35 { |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
36 if (toys.optflags & FLAG_h) |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
37 xprintf("<a name=\"%s\"><h1>%s</h1><blockquote><pre>\n", t->name, t->name); |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
38 |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
39 toys.which = t; |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
40 show_help(); |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
41 |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
42 if (toys.optflags & FLAG_h) xprintf("</blockquote></pre>\n"); |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
43 } |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
44 |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
45 // The simple help is just toys.which = toy_find("name"); show_help(); |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
46 // But iterating through html output and all commands is a big more |
139
fb0745eec453
Add "help" command. (Building help/help.h requires python, but I'll ship
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
47 |
186
25447caf1b4b
Change command main() functions to return void, and exit(toys.exitval) from
Rob Landley <rob@landley.net>
parents:
182
diff
changeset
|
48 void help_main(void) |
139
fb0745eec453
Add "help" command. (Building help/help.h requires python, but I'll ship
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
49 { |
1232
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
50 int i; |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
51 |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
52 if (!(toys.optflags & FLAG_a)) { |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
53 struct toy_list *t = toys.which; |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
54 |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
55 if (*toys.optargs && !(t = toy_find(*toys.optargs))) |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
56 error_exit("Unknown command '%s'", *toys.optargs); |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
57 do_help(t); |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
58 return; |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
59 } |
139
fb0745eec453
Add "help" command. (Building help/help.h requires python, but I'll ship
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
60 |
1232
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
61 if (toys.optflags & FLAG_h) { |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
62 xprintf("<html>\n<title>Toybox command list</title>\n<body>\n<p>\n"); |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
63 for (i=0; i < toys.toycount; i++) |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
64 xprintf("<a href=\"#%s\">%s</a>\n", toy_list[i].name, |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
65 toy_list[i].name); |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
66 xprintf("</p>\n"); |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
67 } |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
68 |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
69 for (i = 0; i < toys.toycount; i++) { |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
70 if (toys.optflags & FLAG_h) xprintf("<hr>\n<pre>\n"); |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
71 do_help(toy_list+i); |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
72 if (toys.optflags & FLAG_h) xprintf("</pre>\n"); |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
73 } |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
74 |
4654f241ccbe
Add help -a (to show all commands) and -h (to produce HTML output).
Rob Landley <rob@landley.net>
parents:
858
diff
changeset
|
75 if (toys.optflags & FLAG_h) xprintf("</html>"); |
139
fb0745eec453
Add "help" command. (Building help/help.h requires python, but I'll ship
Rob Landley <rob@landley.net>
parents:
diff
changeset
|
76 } |