Do usage messages the same way all other apps fo them.
[oweals/busybox.git] / include / usage.h
1 #include "Config.h"
2
3 extern const char usage_messages[];
4
5 #if defined USAGE_ENUM
6 enum
7 #elif defined USAGE_MESSAGES
8 const char usage_messages[] =
9 #endif
10
11 #if defined USAGE_ENUM || defined USAGE_MESSAGES
12 {
13 #endif
14
15 #if defined USAGE_ENUM
16 #define DO_COMMA ,
17 #elif defined USAGE_MESSAGES
18 #define DO_COMMA "\0"
19 #else
20 #define DO_COMMA 
21 #endif
22
23
24 #if defined BB_AR
25 #if defined USAGE_ENUM
26 ar_usage_index
27 #elif defined USAGE_MESSAGES
28         "-[ovR]{ptx} archive filenames"
29 #ifndef BB_FEATURE_TRIVIAL_HELP
30         "\n\nExtract or list files from an ar archive.\n\n"
31         "Options:\n"
32         "\t-o\t\tpreserve original dates\n"
33         "\t-p\t\textract to stdout\n"
34         "\t-t\t\tlist\n"
35         "\t-x\t\textract\n"
36         "\t-v\t\tverbosely list files processed\n"
37         "\t-R\t\trecursive action"
38 #endif
39 #endif
40 DO_COMMA
41 #endif
42
43 #if defined BB_BASENAME
44 #if defined USAGE_ENUM
45 basename_usage_index
46 #elif defined USAGE_MESSAGES
47         "FILE [SUFFIX]"
48 #ifndef BB_FEATURE_TRIVIAL_HELP
49         "\n\nStrips directory path and suffixes from FILE.\n"
50         "If specified, also removes any trailing SUFFIX."
51 #endif
52 #endif
53 DO_COMMA
54 #endif
55
56 #if defined BB_CAT
57 #if defined USAGE_ENUM
58 cat_usage_index
59 #elif defined USAGE_MESSAGES
60         "[FILE]..."
61 #ifndef BB_FEATURE_TRIVIAL_HELP
62         "\n\nConcatenates FILE(s) and prints them to stdout."
63 #endif
64 #endif
65 DO_COMMA
66 #endif
67
68 #if defined BB_CHMOD_CHOWN_CHGRP
69 #if defined USAGE_ENUM
70 chgrp_usage_index
71 #elif defined USAGE_MESSAGES
72         "[OPTION]... GROUP FILE..."
73 #ifndef BB_FEATURE_TRIVIAL_HELP
74         "\n\nChange the group membership of each FILE to GROUP.\n"
75         "\nOptions:\n\t-R\tChanges files and directories recursively."
76 #endif
77 #endif
78 DO_COMMA
79 #endif
80
81 #if defined BB_CHMOD_CHOWN_CHGRP
82 #if defined USAGE_ENUM
83 chmod_usage_index
84 #elif defined USAGE_MESSAGES
85         "[-R] MODE[,MODE]... FILE..."
86 #ifndef BB_FEATURE_TRIVIAL_HELP
87         "\n\nEach MODE is one or more of the letters ugoa, one of the symbols +-= and\n"
88         "one or more of the letters rwxst.\n\n"
89         "\nOptions:\n\t-R\tChanges files and directories recursively."
90 #endif
91 #endif
92 DO_COMMA
93 #endif
94
95 #if defined BB_CHMOD_CHOWN_CHGRP
96 #if defined USAGE_ENUM
97 chown_usage_index
98 #elif defined USAGE_MESSAGES
99         "[OPTION]...  OWNER[<.|:>[GROUP] FILE..."
100 #ifndef BB_FEATURE_TRIVIAL_HELP
101         "\n\nChange the owner and/or group of each FILE to OWNER and/or GROUP.\n"
102         "\nOptions:\n\t-R\tChanges files and directories recursively."
103 #endif
104 #endif
105 DO_COMMA
106 #endif
107
108 #if defined BB_CHROOT
109 #if defined USAGE_ENUM
110 chroot_usage_index
111 #elif defined USAGE_MESSAGES
112         "NEWROOT [COMMAND...]"
113 #ifndef BB_FEATURE_TRIVIAL_HELP
114         "\n\nRun COMMAND with root directory set to NEWROOT."
115 #endif
116 #endif
117 DO_COMMA
118 #endif
119
120 #if defined BB_CHVT
121 #if defined USAGE_ENUM
122 chvt_usage_index
123 #elif defined USAGE_MESSAGES
124         "N"
125 #ifndef BB_FEATURE_TRIVIAL_HELP
126         "\n\nChanges the foreground virtual terminal to /dev/ttyN"
127 #endif
128 #endif
129 DO_COMMA
130 #endif
131
132 #if defined BB_CLEAR
133 #if defined USAGE_ENUM
134 clear_usage_index
135 #elif defined USAGE_MESSAGES
136         ""
137 #ifndef BB_FEATURE_TRIVIAL_HELP
138         "\n\nClear screen."
139 #endif
140 #endif
141 DO_COMMA
142 #endif
143
144 #if defined BB_CMP
145 #if defined USAGE_ENUM
146 cmp_usage_index
147 #elif defined USAGE_MESSAGES
148         "FILE1 [FILE2]"
149 #ifndef BB_FEATURE_TRIVIAL_HELP
150         "\n\nCompare files."
151 #endif
152 #endif
153 DO_COMMA
154 #endif
155
156 #if defined BB_CP_MV
157 #if defined USAGE_ENUM
158 cp_usage_index
159 #elif defined USAGE_MESSAGES
160         "[OPTION]... SOURCE DEST\n"
161         "   or: cp [OPTION]... SOURCE... DIRECTORY"
162 #ifndef BB_FEATURE_TRIVIAL_HELP
163         "\n\nCopies SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.\n"
164         "\n"
165         "\t-a\tSame as -dpR\n"
166         "\t-d\tPreserves links\n"
167         "\t-p\tPreserves file attributes if possible\n"
168         "\t-f\tforce (implied; ignored) - always set\n"
169         "\t-R\tCopies directories recursively"
170 #endif
171 #endif
172 DO_COMMA
173 #endif
174
175 #if defined BB_CUT
176 #if defined USAGE_ENUM
177 cut_usage_index
178 #elif defined USAGE_MESSAGES
179         "[OPTION]... [FILE]..."
180 #ifndef BB_FEATURE_TRIVIAL_HELP
181         "\n\nPrints selected fields from each input FILE to standard output.\n\n"
182         "Options:\n"
183         "\t-b LIST\tOutput only bytes from LIST\n"
184         "\t-c LIST\tOutput only characters from LIST\n"
185         "\t-d CHAR\tUse CHAR instead of tab as the field delimiter\n"
186         "\t-s\tOutput only the lines containing delimiter\n"
187         "\t-f N\tPrint only these fields\n"
188         "\t-n\tIgnored"
189 #endif
190 #endif
191 DO_COMMA
192 #endif
193
194 #if defined BB_DATE
195 #if defined USAGE_ENUM
196 date_usage_index
197 #elif defined USAGE_MESSAGES
198         "[OPTION]... [+FORMAT]\n"
199         "  or:  date [OPTION] [MMDDhhmm[[CC]YY][.ss]]"
200 #ifndef BB_FEATURE_TRIVIAL_HELP
201         "\n\nDisplays the current time in the given FORMAT, or sets the system date.\n"
202         "\nOptions:\n\t-R\t\tOutputs RFC-822 compliant date string\n"
203         "\t-d STRING\tdisplay time described by STRING, not `now'\n"
204         "\t-s\t\tSets time described by STRING\n"
205         "\t-u\t\tPrints or sets Coordinated Universal Time"
206 #endif
207 #endif
208 DO_COMMA
209 #endif
210
211 #if defined BB_DC
212 #if defined USAGE_ENUM
213 dc_usage_index
214 #elif defined USAGE_MESSAGES
215         "expression ..."
216 #ifndef BB_FEATURE_TRIVIAL_HELP
217         "\n\nThis is a Tiny RPN calculator that understands the\n"
218         "following operations: +, -, /, *, and, or, not, eor.\n"
219         "i.e. 'dc 2 2 add' -> 4, and 'dc 8 8 \\* 2 2 + /' -> 16"
220 #endif
221 #endif
222 DO_COMMA
223 #endif
224
225 #if defined BB_DD
226 #if defined USAGE_ENUM
227 dd_usage_index
228 #elif defined USAGE_MESSAGES
229         "[if=FILE] [of=FILE] [bs=N] [count=N] [skip=N] [seek=N] [conv=notrunc|sync]"
230 #ifndef BB_FEATURE_TRIVIAL_HELP
231         "\n\nCopy a file, converting and formatting according to options\n\n"
232         "\tif=FILE\tread from FILE instead of stdin\n"
233         "\tof=FILE\twrite to FILE instead of stdout\n"
234         "\tbs=N\tread and write N bytes at a time\n"
235         "\tcount=N\tcopy only N input blocks\n"
236         "\tskip=N\tskip N input blocks\n"
237         "\tseek=N\tskip N output blocks\n"
238         "\tconv=notrunc\tdon't truncate output file\n"
239         "\tconv=sync\tpad blocks with zeros\n"
240         "\n"
241         "Numbers may be suffixed by c (x1), w (x2), b (x512), kD (x1000), k (x1024),\n"
242         "MD (x1000000), M (x1048576), GD (x1000000000) or G (x1073741824)."
243 #endif
244 #endif
245 DO_COMMA
246 #endif
247
248 #if defined BB_DEALLOCVT
249 #if defined USAGE_ENUM
250 deallocvt_usage_index
251 #elif defined USAGE_MESSAGES
252         "N"
253 #ifndef BB_FEATURE_TRIVIAL_HELP
254          "\n\nDeallocate unused virtual terminal /dev/ttyN"
255 #endif
256 #endif
257 DO_COMMA
258 #endif
259
260 #if defined BB_DF
261 #if defined USAGE_ENUM
262 df_usage_index
263 #elif defined USAGE_MESSAGES
264         "[-?"
265 #ifdef BB_FEATURE_HUMAN_READABLE
266         "hm"
267 #endif
268         "k] [filesystem ...]\n"
269 #ifndef BB_FEATURE_TRIVIAL_HELP
270         "\n\nPrint the filesystem space used and space available."
271         "Options:\n"
272         "\t-?\tshow usage information"
273 #ifdef BB_FEATURE_HUMAN_READABLE
274         "\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n"
275         "\t-m\tprint sizes in megabytes\n"
276         "\t-k\tprint sizes in kilobytes(default)"
277 #else
278         "\n\t-k\tprint sizes in kilobytes(compatability)"
279 #endif
280 #endif
281 #endif
282 DO_COMMA
283 #endif
284
285 #if defined BB_DIRNAME
286 #if defined USAGE_ENUM
287 dirname_usage_index
288 #elif defined USAGE_MESSAGES
289         "[FILENAME ...]"
290 #ifndef BB_FEATURE_TRIVIAL_HELP
291         "\n\nStrips non-directory suffix from FILENAME"
292 #endif
293 #endif
294 DO_COMMA
295 #endif
296
297 #if defined BB_DMESG
298 #if defined USAGE_ENUM
299 dmesg_usage_index
300 #elif defined USAGE_MESSAGES
301         "[-c] [-n LEVEL] [-s SIZE]"
302 #ifndef BB_FEATURE_TRIVIAL_HELP
303         "\n\nPrints or controls the kernel ring buffer\n\n"
304         "Options:\n"
305         "\t-c\t\tClears the ring buffer's contents after printing\n"
306         "\t-n LEVEL\tSets console logging level\n"
307         "\t-s SIZE\t\tUse a buffer of size SIZE"
308 #endif
309 #endif
310 DO_COMMA
311 #endif
312
313 #if defined BB_DOS2UNIX
314 #if defined USAGE_ENUM
315 dos2unix_usage_index
316 #elif defined USAGE_MESSAGES
317         "< dosfile > unixfile"
318 #ifndef BB_FEATURE_TRIVIAL_HELP
319         "\n\nConverts a text file from dos format to unix format."
320 #endif
321 #endif
322 DO_COMMA
323 #endif
324
325 #if defined BB_DPKG
326 #if defined USAGE_ENUM
327 dpkg_usage_index
328 #elif defined USAGE_MESSAGES
329         "<-i|-r|--unpack|--configure> my.deb\n"
330         "WORK IN PROGRESS, only usefull for debian-installer"
331 #ifndef BB_FEATURE_TRIVIAL_HELP
332 #endif
333 #endif
334 DO_COMMA
335 #endif
336
337 #if defined BB_DPKG_DEB
338 #if defined USAGE_ENUM
339 dpkg_deb_usage_index
340 #elif defined USAGE_MESSAGES
341         "[-cexX] file directory"
342 #ifndef BB_FEATURE_TRIVIAL_HELP
343         "\n\nPerform actions on debian packages (.debs)\n\n"
344         "Options:\n"
345         "\t-c\tList contents of filesystem tree (verbose)\n"
346         "\t-l\tList contents of filesystem tree (.list format)\n"
347         "\t-e\tExtract control files to directory\n"    
348         "\t-x\tExctract packages filesystem tree to directory\n"
349         "\t-X\tVerbose extract"
350 #endif
351 #endif
352 DO_COMMA
353 #endif
354
355 #if defined BB_DU
356 #if defined USAGE_ENUM
357 du_usage_index
358 #elif defined USAGE_MESSAGES
359         "[-?ls"
360 #ifdef BB_FEATURE_HUMAN_READABLE
361         "hm"
362 #endif
363         "k] [FILE]..."
364 #ifndef BB_FEATURE_TRIVIAL_HELP
365         "\n\nSummarizes disk space used for each FILE and/or directory.\n"
366         "Disk space is printed in units of 1024 bytes.\n\n"
367         "Options:\n"
368         "\t-?\tshow usage information\n"
369         "\t-l\tcount sizes many times if hard linked\n"
370         "\t-s\tdisplay only a total for each argument"
371 #ifdef BB_FEATURE_HUMAN_READABLE
372         "\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n"
373         "\t-m\tprint sizes in megabytes\n"
374         "\t-k\tprint sizes in kilobytes(default)"
375 #else
376         "\n\t-k\tprint sizes in kilobytes(compatability)"
377 #endif
378 #endif
379 #endif
380 DO_COMMA
381 #endif
382
383 #if defined BB_DUMPKMAP
384 #if defined USAGE_ENUM
385 dumpkmap_usage_index
386 #elif defined USAGE_MESSAGES
387         "> keymap"
388 #ifndef BB_FEATURE_TRIVIAL_HELP
389         "\n\nPrints out a binary keyboard translation table to standard input."
390 #endif
391 #endif
392 DO_COMMA
393 #endif
394
395 #if defined BB_DUTMP
396 #if defined USAGE_ENUM
397 dutmp_usage_index
398 #elif defined USAGE_MESSAGES
399         "[FILE]"
400 #ifndef BB_FEATURE_TRIVIAL_HELP
401         "\n\nDump utmp file format (pipe delimited) from FILE\n"
402         "or stdin to stdout.  (i.e. 'dutmp /var/run/utmp')"
403 #endif
404 #endif
405 DO_COMMA
406 #endif
407
408 #if defined BB_ECHO
409 #if defined USAGE_ENUM
410 echo_usage_index
411 #elif defined USAGE_MESSAGES
412         "[-neE] [ARG ...]"
413 #ifndef BB_FEATURE_TRIVIAL_HELP
414         "\n\nPrints the specified ARGs to stdout\n\n"
415         "Options:\n"
416         "\t-n\tsuppress trailing newline\n"
417         "\t-e\tinterpret backslash-escaped characters (i.e. \\t=tab etc)\n"
418         "\t-E\tdisable interpretation of backslash-escaped characters"
419 #endif
420 #endif
421 DO_COMMA
422 #endif
423
424 #if defined BB_EXPR
425 #if defined USAGE_ENUM
426 expr_usage_index
427 #elif defined USAGE_MESSAGES
428         "EXPRESSION"
429 #ifndef BB_FEATURE_TRIVIAL_HELP
430 "\n\nPrints the value of EXPRESSION to standard output.\n\n"
431 "EXPRESSION may be:\n"
432 "ARG1 |  ARG2   ARG1 if it is neither null nor 0, otherwise ARG2\n"
433 "ARG1 &  ARG2   ARG1 if neither argument is null or 0, otherwise 0\n"
434 "ARG1 <  ARG2   ARG1 is less than ARG2\n"
435 "ARG1 <= ARG2   ARG1 is less than or equal to ARG2\n"
436 "ARG1 =  ARG2   ARG1 is equal to ARG2\n"
437 "ARG1 != ARG2   ARG1 is unequal to ARG2\n"
438 "ARG1 >= ARG2   ARG1 is greater than or equal to ARG2\n"
439 "ARG1 >  ARG2   ARG1 is greater than ARG2\n"
440 "ARG1 +  ARG2   arithmetic sum of ARG1 and ARG2\n"
441 "ARG1 -  ARG2   arithmetic difference of ARG1 and ARG2\n"
442 "ARG1 *  ARG2   arithmetic product of ARG1 and ARG2\n"
443 "ARG1 /  ARG2   arithmetic quotient of ARG1 divided by ARG2\n"
444 "ARG1 %  ARG2   arithmetic remainder of ARG1 divided by ARG2\n"
445 "STRING : REGEXP                    anchored pattern match of REGEXP in STRING\n"
446 "match STRING REGEXP        same as STRING : REGEXP\n"
447 "substr STRING POS LENGTH    substring of STRING, POS counted from 1\n"
448 "index STRING CHARS         index in STRING where any CHARS is found, or 0\n"
449 "length STRING              length of STRING\n"
450 "quote TOKEN                interpret TOKEN as a string, even if it is a \n"
451 "                               keyword like `match' or an operator like `/'\n"
452 "( EXPRESSION )             value of EXPRESSION\n\n"
453 "Beware that many operators need to be escaped or quoted for shells.\n"
454 "Comparisons are arithmetic if both ARGs are numbers, else\n"
455 "lexicographical.  Pattern matches return the string matched between \n"
456 "\\( and \\) or null; if \\( and \\) are not used, they return the number \n"
457 "of characters matched or 0."
458
459 #endif
460 #endif
461 DO_COMMA
462 #endif
463
464
465 #if defined BB_TRUE_FALSE
466 #if defined USAGE_ENUM
467 false_usage_index
468 #elif defined USAGE_MESSAGES
469         ""
470 #ifndef BB_FEATURE_TRIVIAL_HELP
471         "\n\nReturn an exit code of FALSE (1)."
472 #endif
473 #endif
474 DO_COMMA
475 #endif
476
477 #if defined BB_FBSET
478 #if defined USAGE_ENUM
479 fbset_usage_index
480 #elif defined USAGE_MESSAGES
481         "fbset [options] [mode]"
482 #ifndef BB_FEATURE_TRIVIAL_HELP
483         "\n\nShows and modifies frame buffer device settings"
484 #endif
485 #endif
486 DO_COMMA
487 #endif
488
489 #if defined BB_FDFLUSH
490 #if defined USAGE_ENUM
491 fdflush_usage_index
492 #elif defined USAGE_MESSAGES
493         "DEVICE"
494 #ifndef BB_FEATURE_TRIVIAL_HELP
495         "\n\nForces floppy disk drive to detect disk change"
496 #endif
497 #endif
498 DO_COMMA
499 #endif
500
501 #if defined BB_FIND
502 #if defined USAGE_ENUM
503 find_usage_index
504 #elif defined USAGE_MESSAGES
505         "[PATH...] [EXPRESSION]"
506 #ifndef BB_FEATURE_TRIVIAL_HELP
507         "\n\nSearch for files in a directory hierarchy.  The default PATH is\n"
508         "the current directory; default EXPRESSION is '-print'\n\n"
509         "\nEXPRESSION may consist of:\n"
510         "\t-follow\t\tDereference symbolic links.\n"
511         "\t-name PATTERN\tFile name (leading directories removed) matches PATTERN."
512 #ifdef BB_FEATURE_FIND_TYPE
513         "\n\t-type X\t\tFiletype matches X (where X is one of: f,d,l,b,c,...)"
514 #endif
515 #ifdef BB_FEATURE_FIND_PERM
516         "\n\t-perm PERMS\tPermissions match any of (+NNN); all of (-NNN);\n\t\t\tor exactly (NNN)"
517 #endif
518 #ifdef BB_FEATURE_FIND_MTIME
519         "\n\t-mtime TIME\tModified time is greater than (+N); less than (-N);\n\t\t\tor exactly (N) days"
520 #endif
521 #endif
522 #endif
523 DO_COMMA
524 #endif
525
526 #if defined BB_FREE
527 #if defined USAGE_ENUM
528 free_usage_index
529 #elif defined USAGE_MESSAGES
530         ""
531 #ifndef BB_FEATURE_TRIVIAL_HELP
532         "\n\nDisplays the amount of free and used system memory"
533 #endif
534 #endif
535 DO_COMMA
536 #endif
537
538 #if defined BB_FREERAMDISK
539 #if defined USAGE_ENUM
540 freeramdisk_usage_index
541 #elif defined USAGE_MESSAGES
542         "DEVICE"
543 #ifndef BB_FEATURE_TRIVIAL_HELP
544         "\n\nFrees all memory used by the specified ramdisk."
545 #endif
546 #endif
547 DO_COMMA
548 #endif
549
550 #if defined BB_FSCK_MINIX
551 #if defined USAGE_ENUM
552 fsck_minix_usage_index
553 #elif defined USAGE_MESSAGES
554         "[-larvsmf] /dev/name"
555 #ifndef BB_FEATURE_TRIVIAL_HELP
556         "\n\nPerforms a consistency check for MINIX filesystems.\n\n"
557         "Options:\n"
558         "\t-l\tLists all filenames\n"
559         "\t-r\tPerform interactive repairs\n"
560         "\t-a\tPerform automatic repairs\n"
561         "\t-v\tverbose\n"
562         "\t-s\tOutputs super-block information\n"
563         "\t-m\tActivates MINIX-like \"mode not cleared\" warnings\n"
564         "\t-f\tForce file system check."
565 #endif
566 #endif
567 DO_COMMA
568 #endif
569
570 #if defined BB_GETOPT
571 #if defined USAGE_ENUM
572 getopt_usage_index
573 #elif defined USAGE_MESSAGES
574         "[OPTIONS]..."
575 #ifndef BB_FEATURE_TRIVIAL_HELP
576         "\nParse command options\n"
577         "  -a, --alternative            Allow long options starting with single -\n"
578         "  -l, --longoptions=longopts   Long options to be recognized\n"
579         "  -n, --name=progname          The name under which errors are reported\n"
580         "  -o, --options=optstring      Short options to be recognized\n"
581         "  -q, --quiet                  Disable error reporting by getopt(3)\n"
582         "  -Q, --quiet-output           No normal output\n"
583         "  -s, --shell=shell            Set shell quoting conventions\n"
584         "  -T, --test                   Test for getopt(1) version\n"
585         "  -u, --unqote                 Do not quote the output"
586 #endif
587 #endif
588 DO_COMMA
589 #endif
590
591 #if defined BB_GREP
592 #if defined USAGE_ENUM
593 grep_usage_index
594 #elif defined USAGE_MESSAGES
595         "[-ihHnqvs] pattern [files...]"
596 #ifndef BB_FEATURE_TRIVIAL_HELP
597         "\n\nSearch for PATTERN in each FILE or standard input.\n\n"
598         "Options:\n"
599         "\t-H\tprefix output lines with filename where match was found\n"
600         "\t-h\tsuppress the prefixing filename on output\n"
601         "\t-i\tignore case distinctions\n"
602         "\t-n\tprint line number with output lines\n"
603         "\t-q\tbe quiet. Returns 0 if result was found, 1 otherwise\n"
604         "\t-v\tselect non-matching lines\n"
605         "\t-s\tsuppress file open/read error messages"
606 #endif
607 #endif
608 DO_COMMA
609 #endif
610
611 #if defined BB_GUNZIP
612 #if defined USAGE_ENUM
613 gunzip_usage_index
614 #elif defined USAGE_MESSAGES
615         "[OPTION]... FILE"
616 #ifndef BB_FEATURE_TRIVIAL_HELP
617         "\n\nUncompress FILE (or standard input if FILE is '-').\n\n"
618         "Options:\n"
619         "\t-c\tWrite output to standard output\n"
620         "\t-t\tTest compressed file integrity"
621 #endif
622 #endif
623 DO_COMMA
624 #endif
625
626 #if defined BB_GZIP
627 #if defined USAGE_ENUM
628 gzip_usage_index
629 #elif defined USAGE_MESSAGES
630         "[OPTION]... FILE"
631 #ifndef BB_FEATURE_TRIVIAL_HELP
632         "\n\nCompress FILE with maximum compression.\n"
633         "When FILE is '-', reads standard input.  Implies -c.\n\n"
634         "Options:\n"
635         "\t-c\tWrite output to standard output instead of FILE.gz\n"
636         "\t-d\tdecompress"
637 #endif
638 #endif
639 DO_COMMA
640 #endif
641
642 #if defined BB_HALT
643 #if defined USAGE_ENUM
644 halt_usage_index
645 #elif defined USAGE_MESSAGES
646         ""
647 #ifndef BB_FEATURE_TRIVIAL_HELP
648         "\n\nHalt the system."
649 #endif
650 #endif
651 DO_COMMA
652 #endif
653
654 #if defined BB_HEAD
655 #if defined USAGE_ENUM
656 head_usage_index
657 #elif defined USAGE_MESSAGES
658         "[OPTION] [FILE]..."
659 #ifndef BB_FEATURE_TRIVIAL_HELP
660         "\n\nPrint first 10 lines of each FILE to standard output.\n"
661         "With more than one FILE, precede each with a header giving the\n"
662         "file name. With no FILE, or when FILE is -, read standard input.\n\n"
663
664         "Options:\n" "\t-n NUM\t\tPrint first NUM lines instead of first 10"
665 #endif
666 #endif
667 DO_COMMA
668 #endif
669
670 #if defined BB_HOSTID
671 #if defined USAGE_ENUM
672 hostid_usage_index
673 #elif defined USAGE_MESSAGES
674         ""
675 #ifndef BB_FEATURE_TRIVIAL_HELP
676         "\n\nPrint out a unique 32-bit identifier for the machine."
677 #endif
678 #endif
679 DO_COMMA
680 #endif
681
682 #if defined BB_HOSTNAME
683 #if defined USAGE_ENUM
684 hostname_usage_index
685 #elif defined USAGE_MESSAGES
686         "[OPTION] {hostname | -F file}"
687 #ifndef BB_FEATURE_TRIVIAL_HELP
688         "\n\nGet or set the hostname or DNS domain name. If a hostname is given\n"
689         "(or a file with the -F parameter), the host name will be set.\n\n"
690
691         "Options:\n"
692         "\t-s\t\tShort\n"
693         "\t-i\t\tAddresses for the hostname\n"
694         "\t-d\t\tDNS domain name\n"
695         "\t-F, --file FILE\tUse the contents of FILE to specify the hostname"
696 #endif
697 #endif
698 DO_COMMA
699 #endif
700
701 #if defined BB_ID
702 #if defined USAGE_ENUM
703 id_usage_index
704 #elif defined USAGE_MESSAGES
705         "[OPTIONS]... [USERNAME]"
706 #ifndef BB_FEATURE_TRIVIAL_HELP
707         "\n\nPrint information for USERNAME or the current user\n\n"
708         "Options:\n"
709         "\t-g\tprints only the group ID\n"
710         "\t-u\tprints only the user ID\n"
711         "\t-n\tprint a name instead of a number (with for -ug)\n"
712         "\t-r\tprints the real user ID instead of the effective ID (with -ug)"
713 #endif
714 #endif
715 DO_COMMA
716 #endif
717
718 #if defined BB_IFCONFIG
719 #if defined USAGE_ENUM
720 ifconfig_usage_index
721 #elif defined USAGE_MESSAGES
722         "[-a] [-i] [-v] <interface> [<address>]"
723 #ifndef BB_FEATURE_TRIVIAL_HELP
724         "\n\nconfigure a network interface\n\n"
725         "Options:\n"
726         "  [[-]broadcast [<address>]]  [[-]pointopoint [<address>]]\n"
727         "  [netmask <address>]  [dstaddr <address>]  [tunnel <adress>]\n"
728 #ifdef SIOCSKEEPALIVE
729         "  [outfill <NN>] [keepalive <NN>]\n"
730 #endif
731         "  [hw ether <address>]  [metric <NN>]  [mtu <NN>]\n"
732         "  [[-]trailers]  [[-]arp]  [[-]allmulti]\n"
733         "  [multicast]  [[-]promisc]\n"
734         "  [mem_start <NN>]  [io_addr <NN>]  [irq <NN>]  [media <type>]\n"
735         "  [up|down] ..."
736 #endif
737 #endif
738 DO_COMMA
739 #endif
740
741 #if defined BB_INIT
742 #if defined USAGE_ENUM
743 init_usage_index
744 #elif defined USAGE_MESSAGES
745         ""
746 #ifndef BB_FEATURE_TRIVIAL_HELP
747         "\n\nInit is the parent of all processes.\n\n"
748         "This version of init is designed to be run only by the kernel."
749 #endif
750 #endif
751 DO_COMMA
752 #endif
753
754 #if defined BB_INSMOD
755 #if defined USAGE_ENUM
756 insmod_usage_index
757 #elif defined USAGE_MESSAGES
758         "[OPTION]... MODULE [symbol=value]..."
759 #ifndef BB_FEATURE_TRIVIAL_HELP
760         "\n\nLoads the specified kernel modules into the kernel.\n\n"
761         "Options:\n"
762         "\t-f\tForce module to load into the wrong kernel version.\n"
763         "\t-k\tMake module autoclean-able.\n"
764         "\t-v\tverbose output\n" 
765         "\t-L\tLock to prevent simultaneous loads of a module\n"
766         "\t-x\tdo not export externs"
767 #endif
768 #endif
769 DO_COMMA
770 #endif
771
772 #if defined BB_KILL
773 #if defined USAGE_ENUM
774 kill_usage_index
775 #elif defined USAGE_MESSAGES
776         "[-signal] process-id [process-id ...]"
777 #ifndef BB_FEATURE_TRIVIAL_HELP
778         "\n\nSend a signal (default is SIGTERM) to the specified process(es).\n\n"
779         "Options:\n" "\t-l\tList all signal names and numbers."
780 #endif
781 #endif
782 DO_COMMA
783 #endif
784
785 #if defined BB_KILLALL
786 #if defined USAGE_ENUM
787 killall_usage_index
788 #elif defined USAGE_MESSAGES
789         "[-signal] process-name [process-name ...]"
790 #ifndef BB_FEATURE_TRIVIAL_HELP
791         "\n\nSend a signal (default is SIGTERM) to the specified process(es).\n\n"
792         "Options:\n" "\t-l\tList all signal names and numbers."
793 #endif
794 #endif
795 DO_COMMA
796 #endif
797
798 #if defined BB_LENGTH
799 #if defined USAGE_ENUM
800 length_usage_index
801 #elif defined USAGE_MESSAGES
802         "STRING"
803 #ifndef BB_FEATURE_TRIVIAL_HELP
804         "\n\nPrints out the length of the specified STRING."
805 #endif
806 #endif
807 DO_COMMA
808 #endif
809
810 #if defined BB_LN
811 #if defined USAGE_ENUM
812 ln_usage_index
813 #elif defined USAGE_MESSAGES
814         "[OPTION] TARGET... LINK_NAME|DIRECTORY"
815 #ifndef BB_FEATURE_TRIVIAL_HELP
816         "\n\nCreate a link named LINK_NAME or DIRECTORY to the specified TARGET\n"
817         "\nYou may use '--' to indicate that all following arguments are non-options.\n\n"
818         "Options:\n"
819         "\t-s\tmake symbolic links instead of hard links\n"
820         "\t-f\tremove existing destination files\n"
821         "\t-n\tno dereference symlinks - treat like normal file"
822 #endif
823 #endif
824 DO_COMMA
825 #endif
826
827 #if defined BB_LOADACM
828 #if defined USAGE_ENUM
829 loadacm_usage_index
830 #elif defined USAGE_MESSAGES
831         "< mapfile"
832 #ifndef BB_FEATURE_TRIVIAL_HELP
833         "\n\nLoads an acm from standard input."
834 #endif
835 #endif
836 DO_COMMA
837 #endif
838
839 #if defined BB_LOADFONT
840 #if defined USAGE_ENUM
841 loadfont_usage_index
842 #elif defined USAGE_MESSAGES
843         "< font"
844 #ifndef BB_FEATURE_TRIVIAL_HELP
845         "\n\nLoads a console font from standard input."
846 #endif
847 #endif
848 DO_COMMA
849 #endif
850
851 #if defined BB_LOADKMAP
852 #if defined USAGE_ENUM
853 loadkmap_usage_index
854 #elif defined USAGE_MESSAGES
855         "< keymap"
856 #ifndef BB_FEATURE_TRIVIAL_HELP
857         "\n\nLoads a binary keyboard translation table from standard input."
858 #endif
859 #endif
860 DO_COMMA
861 #endif
862
863 #if defined BB_LOGGER
864 #if defined USAGE_ENUM
865 logger_usage_index
866 #elif defined USAGE_MESSAGES
867         "[OPTION]... [MESSAGE]"
868 #ifndef BB_FEATURE_TRIVIAL_HELP
869         "\n\nWrite MESSAGE to the system log.  If MESSAGE is omitted, log stdin.\n\n"
870         "Options:\n"
871         "\t-s\tLog to stderr as well as the system log.\n"
872         "\t-t\tLog using the specified tag (defaults to user name).\n"
873         "\t-p\tEnter the message with the specified priority.\n"
874         "\t\tThis may be numerical or a ``facility.level'' pair."
875 #endif
876 #endif
877 DO_COMMA
878 #endif
879
880 #if defined BB_LOGNAME
881 #if defined USAGE_ENUM
882 logname_usage_index
883 #elif defined USAGE_MESSAGES
884         ""
885 #ifndef BB_FEATURE_TRIVIAL_HELP
886         "\n\nPrint the name of the current user."
887 #endif
888 #endif
889 DO_COMMA
890 #endif
891
892 #if defined BB_LS
893 #if defined USAGE_ENUM
894 ls_usage_index
895 #elif defined USAGE_MESSAGES
896         "[-1Aa"
897 #ifdef BB_FEATURE_LS_TIMESTAMPS
898         "c"
899 #endif
900         "Cd"
901 #ifdef BB_FEATURE_LS_TIMESTAMPS
902         "e"
903 #endif
904 #ifdef BB_FEATURE_LS_FILETYPES
905         "F"
906 #endif
907         "iln"
908 #ifdef BB_FEATURE_LS_FILETYPES
909         "p"
910 #endif
911 #ifdef BB_FEATURE_LS_FOLLOWLINKS
912     "L"
913 #endif
914 #ifdef BB_FEATURE_LS_RECURSIVE
915         "R"
916 #endif
917 #ifdef BB_FEATURE_LS_SORTFILES
918         "rS"
919 #endif
920         "s"
921 #ifdef BB_FEATURE_AUTOWIDTH
922         "T"
923 #endif
924 #ifdef BB_FEATURE_LS_TIMESTAMPS
925         "tu"
926 #endif
927 #ifdef BB_FEATURE_LS_SORTFILES
928         "v"
929 #endif
930 #ifdef BB_FEATURE_AUTOWIDTH
931         "w"
932 #endif
933         "x"
934 #ifdef BB_FEATURE_LS_SORTFILES
935         "X"
936 #endif
937 #ifdef BB_FEATURE_HUMAN_READABLE
938         "h"
939 #endif
940         "k] [filenames...]"
941 #ifndef BB_FEATURE_TRIVIAL_HELP
942         "\n\nList directory contents\n\n"
943         "Options:\n"
944         "\t-1\tlist files in a single column\n"
945         "\t-A\tdo not list implied . and ..\n"
946         "\t-a\tdo not hide entries starting with .\n"
947         "\t-C\tlist entries by columns\n"
948 #ifdef BB_FEATURE_LS_TIMESTAMPS
949         "\t-c\twith -l: show ctime (the time of last\n"
950         "\t\tmodification of file status information)\n"
951 #endif
952         "\t-d\tlist directory entries instead of contents\n"
953 #ifdef BB_FEATURE_LS_TIMESTAMPS
954         "\t-e\tlist both full date and full time\n"
955 #endif
956 #ifdef BB_FEATURE_LS_FILETYPES
957         "\t-F\tappend indicator (one of */=@|) to entries\n"
958 #endif
959         "\t-i\tlist the i-node for each file\n"
960         "\t-l\tuse a long listing format\n"
961         "\t-n\tlist numeric UIDs and GIDs instead of names\n"
962 #ifdef BB_FEATURE_LS_FILETYPES
963         "\t-p\tappend indicator (one of /=@|) to entries\n"
964 #endif
965 #ifdef BB_FEATURE_LS_FOLLOWLINKS
966         "\t-L\tlist entries pointed to by symbolic links\n"
967 #endif
968 #ifdef BB_FEATURE_LS_RECURSIVE
969         "\t-R\tlist subdirectories recursively\n"
970 #endif
971 #ifdef BB_FEATURE_LS_SORTFILES
972         "\t-r\tsort the listing in reverse order\n"
973         "\t-S\tsort the listing by file size\n"
974 #endif
975         "\t-s\tlist the size of each file, in blocks\n"
976 #ifdef BB_FEATURE_AUTOWIDTH
977         "\t-T NUM\tassume Tabstop every NUM columns\n"
978 #endif
979 #ifdef BB_FEATURE_LS_TIMESTAMPS
980         "\t-t\twith -l: show modification time (the time of last\n"
981         "\t\tchange of the file)\n"
982         "\t-u\twith -l: show access time (the time of last\n"
983         "\t\taccess of the file)\n"
984 #endif
985 #ifdef BB_FEATURE_LS_SORTFILES
986         "\t-v\tsort the listing by version\n"
987 #endif
988 #ifdef BB_FEATURE_AUTOWIDTH
989         "\t-w NUM\tassume the terminal is NUM columns wide\n"
990 #endif
991         "\t-x\tlist entries by lines instead of by columns\n"
992 #ifdef BB_FEATURE_LS_SORTFILES
993         "\t-X\tsort the listing by extension\n"
994 #endif
995
996 #ifdef BB_FEATURE_HUMAN_READABLE
997         "\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n"
998         "\t-k\tprint sizes in kilobytes(default)"
999 #else
1000         "\t-k\tprint sizes in kilobytes(compatability)"
1001 #endif
1002
1003 #endif /*  BB_FEATURE_TRIVIAL_HELP */
1004 #endif
1005 DO_COMMA
1006 #endif /* BB_LS */
1007
1008 #if defined BB_LSMOD
1009 #if defined USAGE_ENUM
1010 lsmod_usage_index
1011 #elif defined USAGE_MESSAGES
1012         ""
1013 #ifndef BB_FEATURE_TRIVIAL_HELP
1014         "\n\nList the currently loaded kernel modules."
1015 #endif
1016 #endif
1017 DO_COMMA
1018 #endif
1019
1020 #if defined BB_MAKEDEVS
1021 #if defined USAGE_ENUM
1022 makedevs_usage_index
1023 #elif defined USAGE_MESSAGES
1024         "NAME TYPE MAJOR MINOR FIRST LAST [s]"
1025 #ifndef BB_FEATURE_TRIVIAL_HELP
1026         "\n\nCreates a range of block or character special files\n\n"
1027         "TYPEs include:\n"
1028         "\tb:\tMake a block (buffered) device.\n"
1029         "\tc or u:\tMake a character (un-buffered) device.\n"
1030         "\tp:\tMake a named pipe. MAJOR and MINOR are ignored for named pipes.\n\n"
1031         "FIRST specifies the number appended to NAME to create the first device.\n"
1032         "LAST specifies the number of the last item that should be created.\n"
1033         "If 's' is the last argument, the base device is created as well.\n\n"
1034         "For example:\n"
1035         "\tmakedevs /dev/ttyS c 4 66 2 63   ->  ttyS2-ttyS63\n"
1036         "\tmakedevs /dev/hda b 3 0 0 8 s    ->  hda,hda1-hda8"
1037 #endif
1038 #endif
1039 DO_COMMA
1040 #endif
1041
1042 #if defined BB_MD5SUM
1043 #if defined USAGE_ENUM
1044 md5sum_usage_index
1045 #elif defined USAGE_MESSAGES
1046         "[OPTION] [FILE]...\n"
1047         "or:    md5sum [OPTION] -c [FILE]"
1048 #ifndef BB_FEATURE_TRIVIAL_HELP
1049         "\n\nPrint or check MD5 checksums.\n\n"
1050         "Options:\n"
1051         "With no FILE, or when FILE is -, read standard input.\n\n"
1052         "\t-b\tread files in binary mode\n"
1053         "\t-c\tcheck MD5 sums against given list\n"
1054         "\t-t\tread files in text mode (default)\n"
1055         "\t-g\tread a string\n"
1056         "\nThe following two options are useful only when verifying checksums:\n"
1057         "\t-s,\tdon't output anything, status code shows success\n"
1058         "\t-w,\twarn about improperly formated MD5 checksum lines"
1059 #endif
1060 #endif
1061 DO_COMMA
1062 #endif
1063
1064 #if defined BB_MKDIR
1065 #if defined USAGE_ENUM
1066 mkdir_usage_index
1067 #elif defined USAGE_MESSAGES
1068         "[OPTION] DIRECTORY..."
1069 #ifndef BB_FEATURE_TRIVIAL_HELP
1070         "\n\nCreate the DIRECTORY(ies), if they do not already exist\n\n"
1071         
1072         "Options:\n"
1073         "\t-m\tset permission mode (as in chmod), not rwxrwxrwx - umask\n"
1074         "\t-p\tno error if existing, make parent directories as needed"
1075 #endif
1076 #endif
1077 DO_COMMA
1078 #endif
1079
1080 #if defined BB_MKFIFO
1081 #if defined USAGE_ENUM
1082 mkfifo_usage_index
1083 #elif defined USAGE_MESSAGES
1084         "[OPTIONS] name"
1085 #ifndef BB_FEATURE_TRIVIAL_HELP
1086         "\n\nCreates a named pipe (identical to 'mknod name p')\n\n"
1087         "Options:\n"
1088         "\t-m\tcreate the pipe using the specified mode (default a=rw)"
1089 #endif
1090 #endif
1091 DO_COMMA
1092 #endif
1093
1094 #if defined BB_MKFS_MINIX
1095 #if defined USAGE_ENUM
1096 mkfs_minix_usage_index
1097 #elif defined USAGE_MESSAGES
1098         "[-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]"
1099 #ifndef BB_FEATURE_TRIVIAL_HELP
1100         "\n\nMake a MINIX filesystem.\n\n"
1101         "Options:\n"
1102         "\t-c\t\tCheck the device for bad blocks\n"
1103         "\t-n [14|30]\tSpecify the maximum length of filenames\n"
1104         "\t-i INODES\tSpecify the number of inodes for the filesystem\n"
1105         "\t-l FILENAME\tRead the bad blocks list from FILENAME\n"
1106         "\t-v\t\tMake a Minix version 2 filesystem"
1107 #endif
1108 #endif
1109 DO_COMMA
1110 #endif
1111
1112 #if defined BB_MKNOD
1113 #if defined USAGE_ENUM
1114 mknod_usage_index
1115 #elif defined USAGE_MESSAGES
1116         "[OPTIONS] NAME TYPE MAJOR MINOR"
1117 #ifndef BB_FEATURE_TRIVIAL_HELP
1118         "\n\nCreate a special file (block, character, or pipe).\n\n"
1119         "Options:\n"
1120         "\t-m\tcreate the special file using the specified mode (default a=rw)\n\n"
1121         "TYPEs include:\n"
1122         "\tb:\tMake a block (buffered) device.\n"
1123         "\tc or u:\tMake a character (un-buffered) device.\n"
1124         "\tp:\tMake a named pipe. MAJOR and MINOR are ignored for named pipes."
1125 #endif
1126 #endif
1127 DO_COMMA
1128 #endif
1129
1130 #if defined BB_MKSWAP
1131 #if defined USAGE_ENUM
1132 mkswap_usage_index
1133 #elif defined USAGE_MESSAGES
1134         "[-c] [-v0|-v1] device [block-count]"
1135 #ifndef BB_FEATURE_TRIVIAL_HELP
1136         "\n\nPrepare a disk partition to be used as a swap partition.\n\n"
1137         "Options:\n" "\t-c\t\tCheck for read-ability.\n"
1138         "\t-v0\t\tMake version 0 swap [max 128 Megs].\n"
1139         "\t-v1\t\tMake version 1 swap [big!] (default for kernels > 2.1.117).\n"
1140         "\tblock-count\tNumber of block to use (default is entire partition)."
1141 #endif
1142 #endif
1143 DO_COMMA
1144 #endif
1145
1146 #if defined BB_MKTEMP
1147 #if defined USAGE_ENUM
1148 mktemp_usage_index
1149 #elif defined USAGE_MESSAGES
1150         "[-q] TEMPLATE"
1151 #ifndef BB_FEATURE_TRIVIAL_HELP
1152         "\n\nCreates a temporary file with its name based on TEMPLATE.\n"
1153         "TEMPLATE is any name with six `Xs' (i.e. /tmp/temp.XXXXXX)."
1154 #endif
1155 #endif
1156 DO_COMMA
1157 #endif
1158
1159 #if defined BB_MORE
1160 #if defined USAGE_ENUM
1161 more_usage_index
1162 #elif defined USAGE_MESSAGES
1163         "[FILE ...]"
1164 #ifndef BB_FEATURE_TRIVIAL_HELP
1165         "\n\nMore is a filter for viewing FILE one screenful at a time."
1166 #endif
1167 #endif
1168 DO_COMMA
1169 #endif
1170
1171 #if defined BB_MOUNT
1172 #if defined USAGE_ENUM
1173 mount_usage_index
1174 #elif defined USAGE_MESSAGES
1175         "[flags] device directory [-o options,more-options]"
1176 #ifndef BB_FEATURE_TRIVIAL_HELP
1177         "\n\nMount a filesystem\n\n"
1178         "Flags:\n" 
1179         "\t-a:\t\tMount all filesystems in fstab.\n"
1180 #ifdef BB_MTAB
1181         "\t-f:\t\t\"Fake\" mount. Add entry to mount table but don't mount it.\n"
1182         "\t-n:\t\tDon't write a mount table entry.\n"
1183 #endif
1184         "\t-o option:\tOne of many filesystem options, listed below.\n"
1185         "\t-r:\t\tMount the filesystem read-only.\n"
1186         "\t-t fs-type:\tSpecify the filesystem type.\n"
1187         "\t-w:\t\tMount for reading and writing (default).\n"
1188         "\n"
1189         "Options for use with the \"-o\" flag:\n"
1190         "\tasync/sync:\tWrites are asynchronous / synchronous.\n"
1191         "\tatime/noatime:\tEnable / disable updates to inode access times.\n"
1192         "\tdev/nodev:\tAllow use of special device files / disallow them.\n"
1193         "\texec/noexec:\tAllow use of executable files / disallow them.\n"
1194 #if defined BB_FEATURE_MOUNT_LOOP
1195         "\tloop:\t\tMounts a file via loop device.\n"
1196 #endif
1197         "\tsuid/nosuid:\tAllow set-user-id-root programs / disallow them.\n"
1198         "\tremount:\tRe-mount a currently-mounted filesystem, changing its flags.\n"
1199         "\tro/rw:\t\tMount for read-only / read-write.\n"
1200         "\nThere are EVEN MORE flags that are specific to each filesystem.\n"
1201         "You'll have to see the written documentation for those."
1202 #endif
1203 #endif
1204 DO_COMMA
1205 #endif
1206
1207 #if defined BB_MT
1208 #if defined USAGE_ENUM
1209 mt_usage_index
1210 #elif defined USAGE_MESSAGES
1211         "[-f device] opcode value"
1212 #ifndef BB_FEATURE_TRIVIAL_HELP
1213         "\n\nControl magnetic tape drive operation\n"
1214         "\nAvailable Opcodes:\n\n"
1215         "bsf bsfm bsr bss datacompression drvbuffer eof eom erase\n"
1216         "fsf fsfm fsr fss load lock mkpart nop offline ras1 ras2\n"
1217         "ras3 reset retension rew rewoffline seek setblk setdensity\n"
1218         "setpart tell unload unlock weof wset"
1219 #endif
1220 #endif
1221 DO_COMMA
1222 #endif
1223
1224 #if defined BB_CP_MV
1225 #if defined USAGE_ENUM
1226 mv_usage_index
1227 #elif defined USAGE_MESSAGES
1228         "SOURCE DEST\n"
1229         "   or: mv SOURCE... DIRECTORY"
1230 #ifndef BB_FEATURE_TRIVIAL_HELP
1231         "\n\nRename SOURCE to DEST, or move SOURCE(s) to DIRECTORY."
1232 #endif
1233 #endif
1234 DO_COMMA
1235 #endif
1236
1237 #if defined BB_NC
1238 #if defined USAGE_ENUM
1239 nc_usage_index
1240 #elif defined USAGE_MESSAGES
1241         "[IP] [port]" 
1242 #ifndef BB_FEATURE_TRIVIAL_HELP
1243         "\n\nNetcat opens a pipe to IP:port"
1244 #endif
1245 #endif
1246 DO_COMMA
1247 #endif
1248
1249 #if defined BB_NSLOOKUP
1250 #if defined USAGE_ENUM
1251 nslookup_usage_index
1252 #elif defined USAGE_MESSAGES
1253         "[HOST]"
1254 #ifndef BB_FEATURE_TRIVIAL_HELP
1255         "\n\nQueries the nameserver for the IP address of the given HOST"
1256 #endif
1257 #endif
1258 DO_COMMA
1259 #endif
1260
1261 #if defined BB_PING
1262 #if defined BB_FEATURE_SIMPLE_PING
1263 #if defined USAGE_ENUM
1264 ping_usage_index
1265 #elif defined USAGE_MESSAGES
1266         "host"
1267 #ifndef BB_FEATURE_TRIVIAL_HELP
1268         "\n\nSend ICMP ECHO_REQUEST packets to network hosts"
1269 #endif
1270 #endif
1271 DO_COMMA
1272 #else /* ! defined BB_FEATURE_SIMPLE_PING */
1273 #if defined USAGE_ENUM
1274 ping_usage_index
1275 #elif defined USAGE_MESSAGES
1276         "[OPTION]... host"
1277 #ifndef BB_FEATURE_TRIVIAL_HELP
1278         "\n\nSend ICMP ECHO_REQUEST packets to network hosts.\n\n"
1279         "Options:\n"
1280         "\t-c COUNT\tSend only COUNT pings.\n"
1281         "\t-s SIZE\t\tSend SIZE data bytes in packets (default=56).\n"
1282         "\t-q\t\tQuiet mode, only displays output at start\n"
1283         "\t\t\tand when finished."
1284 #endif
1285 #endif
1286 DO_COMMA
1287 #endif
1288 #endif
1289
1290 #if defined BB_PIVOT_ROOT
1291 #if defined USAGE_ENUM
1292 pivot_root_usage_index
1293 #elif defined USAGE_MESSAGES
1294         "new_root put_old"
1295 #ifndef BB_FEATURE_TRIVIAL_HELP
1296         "\n\nMove the current root file system to put_old and make new_root\n"
1297         "the new root file system."
1298 #endif
1299 #endif
1300 DO_COMMA
1301 #endif
1302
1303 #if defined BB_POWEROFF
1304 #if defined USAGE_ENUM
1305 poweroff_usage_index
1306 #elif defined USAGE_MESSAGES
1307         ""
1308 #ifndef BB_FEATURE_TRIVIAL_HELP
1309         "\n\nHalt the system and request that the kernel shut off the power."
1310 #endif
1311 #endif
1312 DO_COMMA
1313 #endif
1314
1315 #if defined BB_PRINTF
1316 #if defined USAGE_ENUM
1317 printf_usage_index
1318 #elif defined USAGE_MESSAGES
1319         "FORMAT [ARGUMENT...]"
1320 #ifndef BB_FEATURE_TRIVIAL_HELP
1321         "\n\nFormats and prints ARGUMENT(s) according to FORMAT,\n"
1322         "Where FORMAT controls the output exactly as in C printf."
1323 #endif
1324 #endif
1325 DO_COMMA
1326 #endif
1327
1328 #if defined BB_PS
1329 #if defined USAGE_ENUM
1330 ps_usage_index
1331 #elif defined USAGE_MESSAGES
1332         ""
1333 #ifndef BB_FEATURE_TRIVIAL_HELP
1334         "\n\nReport process status\n"
1335         "\nThis version of ps accepts no options."
1336 #endif
1337 #endif
1338 DO_COMMA
1339 #endif
1340
1341 #if defined BB_PWD
1342 #if defined USAGE_ENUM
1343 pwd_usage_index
1344 #elif defined USAGE_MESSAGES
1345         ""
1346 #ifndef BB_FEATURE_TRIVIAL_HELP
1347         "\n\nPrint the full filename of the current working directory."
1348 #endif
1349 #endif
1350 DO_COMMA
1351 #endif
1352
1353 #if defined BB_RDATE
1354 #if defined USAGE_ENUM
1355 rdate_usage_index
1356 #elif defined USAGE_MESSAGES
1357         "[OPTION] HOST"
1358 #ifndef BB_FEATURE_TRIVIAL_HELP
1359         "\n\nGet and possibly set the system date and time from a remote HOST.\n"
1360         "Options:\n"
1361         "\t-s\tSet the system date and time (default).\n"
1362         "\t-p\tPrint the date and time."
1363 #endif
1364 #endif
1365 DO_COMMA
1366 #endif
1367
1368 #if defined BB_READLINK
1369 #if defined USAGE_ENUM
1370 readlink_usage_index
1371 #elif defined USAGE_MESSAGES
1372         ""
1373 #ifndef BB_FEATURE_TRIVIAL_HELP
1374         "\n\nRead a symbolic link."
1375 #endif
1376 #endif
1377 DO_COMMA
1378 #endif
1379
1380 #if defined BB_REBOOT
1381 #if defined USAGE_ENUM
1382 reboot_usage_index
1383 #elif defined USAGE_MESSAGES
1384         ""
1385 #ifndef BB_FEATURE_TRIVIAL_HELP
1386         "\n\nReboot the system."
1387 #endif
1388 #endif
1389 DO_COMMA
1390 #endif
1391         
1392 #if defined BB_RENICE
1393 #if defined USAGE_ENUM
1394 renice_usage_index
1395 #elif defined USAGE_MESSAGES
1396         "priority pid [pid ...]"
1397 #ifndef BB_FEATURE_TRIVIAL_HELP
1398         "\n\nChanges priority of running processes. Allowed priorities range\n"
1399         "from 20 (the process runs only when nothing else is running) to 0\n"
1400         "(default priority) to -20 (almost nothing else ever gets to run)."
1401 #endif
1402 #endif
1403 DO_COMMA
1404 #endif
1405
1406
1407 #if defined BB_RESET
1408 #if defined USAGE_ENUM
1409 reset_usage_index
1410 #elif defined USAGE_MESSAGES
1411         ""
1412 #ifndef BB_FEATURE_TRIVIAL_HELP
1413         "\n\nResets the screen."
1414 #endif
1415 #endif
1416 DO_COMMA
1417 #endif
1418
1419 #if defined BB_RM
1420 #if defined USAGE_ENUM
1421 rm_usage_index
1422 #elif defined USAGE_MESSAGES
1423         "[OPTION]... FILE..."
1424 #ifndef BB_FEATURE_TRIVIAL_HELP
1425         "\n\nRemove (unlink) the FILE(s).  You may use '--' to\n"
1426         "indicate that all following arguments are non-options.\n\n"
1427         "Options:\n"
1428         "\t-f\t\tremove existing destinations, never prompt\n"
1429         "\t-r or -R\tremove the contents of directories recursively"
1430 #endif
1431 #endif
1432 DO_COMMA
1433 #endif
1434
1435 #if defined BB_RMDIR
1436 #if defined USAGE_ENUM
1437 rmdir_usage_index
1438 #elif defined USAGE_MESSAGES
1439         "[OPTION]... DIRECTORY..."
1440 #ifndef BB_FEATURE_TRIVIAL_HELP
1441         "\n\nRemove the DIRECTORY(ies), if they are empty."
1442 #endif
1443 #endif
1444 DO_COMMA
1445 #endif
1446
1447 #if defined BB_RMMOD
1448 #if defined USAGE_ENUM
1449 rmmod_usage_index
1450 #elif defined USAGE_MESSAGES
1451         "[OPTION]... [MODULE]..."
1452 #ifndef BB_FEATURE_TRIVIAL_HELP
1453         "\n\nUnloads the specified kernel modules from the kernel.\n\n"
1454         "Options:\n" 
1455         "\t-a\tTry to remove all unused kernel modules."
1456 #endif
1457 #endif
1458 DO_COMMA
1459 #endif
1460
1461 #if defined BB_ROUTE
1462 #if defined USAGE_ENUM
1463 route_usage_index
1464 #elif defined USAGE_MESSAGES
1465         "[{add|del|flush}]"
1466 #ifndef BB_FEATURE_TRIVIAL_HELP
1467         "\n\nEdit the kernel's routing tables"
1468 #endif
1469 #endif
1470 DO_COMMA
1471 #endif
1472
1473 #if defined BB_RPMUNPACK
1474 #if defined USAGE_ENUM
1475 rpmunpack_usage_index
1476 #elif defined USAGE_MESSAGES
1477         "< package.rpm | gunzip | cpio -idmuv"
1478 #ifndef BB_FEATURE_TRIVIAL_HELP
1479         "\n\nExtracts an rpm archive."
1480 #endif
1481 #endif
1482 DO_COMMA
1483 #endif
1484
1485 #if defined BB_SED
1486 #if defined USAGE_ENUM
1487 sed_usage_index
1488 #elif defined USAGE_MESSAGES
1489         "[-Vhnef] pattern [files...]"
1490 #ifndef BB_FEATURE_TRIVIAL_HELP
1491         "\n\n"
1492         "-n\t\tsuppress automatic printing of pattern space\n"
1493         "-e script\tadd the script to the commands to be executed\n"
1494         "-f scriptfile\tadd the contents of script-file to the commands to be executed\n"
1495         "-h\t\tdisplay this help message\n"
1496         "\n"
1497         "If no -e or -f is given, the first non-option argument is taken as the\n"
1498         "sed script to interpret. All remaining arguments are names of input\n"
1499         "files; if no input files are specified, then the standard input is read."
1500 #endif
1501 #endif
1502 DO_COMMA
1503 #endif
1504
1505 #if defined BB_SETKEYCODES
1506 #if defined USAGE_ENUM
1507 setkeycodes_usage_index
1508 #elif defined USAGE_MESSAGES
1509         "SCANCODE KEYCODE ..."
1510 #ifndef BB_FEATURE_TRIVIAL_HELP
1511         "\n\nSet entries into the kernel's scancode-to-keycode map,\n"
1512         "allowing unusual keyboards to generate usable keycodes.\n\n" 
1513         "SCANCODE may be either xx or e0xx (hexadecimal),\n"
1514         "and KEYCODE is given in decimal"
1515 #endif
1516 #endif
1517 DO_COMMA
1518 #endif
1519
1520 #if defined BB_SH
1521 #if defined USAGE_ENUM
1522 shell_usage_index
1523 #elif defined USAGE_MESSAGES
1524         "[FILE]...\n"
1525         "   or: sh -c command [args]..."
1526 #ifndef BB_FEATURE_TRIVIAL_HELP
1527         "\n\nlash: The BusyBox command interpreter (shell)."
1528 #endif
1529 #endif
1530 DO_COMMA
1531 #endif
1532
1533 #if defined BB_SLEEP
1534 #if defined USAGE_ENUM
1535 sleep_usage_index
1536 #elif defined USAGE_MESSAGES
1537         "N" 
1538 #ifndef BB_FEATURE_TRIVIAL_HELP
1539         "\n\nPause for N seconds."
1540 #endif
1541 #endif
1542 DO_COMMA
1543 #endif
1544
1545 #if defined BB_SORT
1546 #if defined USAGE_ENUM
1547 sort_usage_index
1548 #elif defined USAGE_MESSAGES
1549         "[-n]"
1550 #ifdef BB_FEATURE_SORT_REVERSE
1551         " [-r]"
1552 #endif
1553         " [FILE]..."
1554 #ifndef BB_FEATURE_TRIVIAL_HELP
1555         "\n\nSorts lines of text in the specified files"
1556 #endif
1557 #endif
1558 DO_COMMA
1559 #endif
1560
1561 #if defined BB_STTY
1562 #if defined USAGE_ENUM
1563 stty_usage_index
1564 #elif defined USAGE_MESSAGES
1565         "stty [-a|g] [-F device] [SETTING]..."
1566 #ifndef BB_FEATURE_TRIVIAL_HELP
1567         "\n\nWithout arguments, prints baud rate, line discipline,"
1568         "\nand deviations from stty sane."
1569         "\n -F device  open and use the specified device instead of stdin"
1570         "\n -a         print all current settings in human-readable form. Or"
1571         "\n -g         print in a stty-readable form"
1572         "\n [SETTING]  see in documentation"
1573 #endif
1574 #endif
1575 DO_COMMA
1576 #endif
1577
1578 #if defined BB_SWAPONOFF
1579 #if defined USAGE_ENUM
1580 swapoff_usage_index
1581 #elif defined USAGE_MESSAGES
1582         "[OPTION] [device]"
1583 #ifndef BB_FEATURE_TRIVIAL_HELP
1584         "\n\nStop swapping virtual memory pages on the given device.\n\n"
1585         "Options:\n"
1586         "\t-a\tStop swapping on all swap devices"
1587 #endif
1588 #endif
1589 DO_COMMA
1590 #endif
1591
1592 #if defined BB_SWAPONOFF
1593 #if defined USAGE_ENUM
1594 swapon_usage_index
1595 #elif defined USAGE_MESSAGES
1596         "[OPTION] [device]"
1597 #ifndef BB_FEATURE_TRIVIAL_HELP
1598         "\n\nStart swapping virtual memory pages on the given device.\n\n"
1599         "Options:\n"
1600         "\t-a\tStart swapping on all swap devices"
1601 #endif
1602 #endif
1603 DO_COMMA
1604 #endif
1605
1606 #if defined BB_SYNC
1607 #if defined USAGE_ENUM
1608 sync_usage_index
1609 #elif defined USAGE_MESSAGES
1610         ""
1611 #ifndef BB_FEATURE_TRIVIAL_HELP
1612         "\n\nWrite all buffered filesystem blocks to disk."
1613 #endif
1614 #endif
1615 DO_COMMA
1616 #endif
1617
1618 #if defined BB_SYSLOGD
1619 #if defined USAGE_ENUM
1620 syslogd_usage_index
1621 #elif defined USAGE_MESSAGES
1622         "[OPTION]..."
1623 #ifndef BB_FEATURE_TRIVIAL_HELP
1624         "\n\nLinux system and kernel (provides klogd) logging utility.\n"
1625         "Note that this version of syslogd/klogd ignores /etc/syslog.conf.\n\n"
1626         "Options:\n"
1627         "\t-m NUM\t\tInterval between MARK lines (default=20min, 0=off)\n"
1628         "\t-n\t\tRun as a foreground process\n"
1629 #ifdef BB_FEATURE_KLOGD
1630         "\t-K\t\tDo not start up the klogd process\n"
1631 #endif
1632         "\t-O FILE\t\tUse an alternate log file (default=/var/log/messages)"
1633 #ifdef BB_FEATURE_REMOTE_LOG
1634         "\n\t-R HOST[:PORT]\t\tLog remotely to IP or hostname on PORT (default PORT=514/UDP)\n"
1635         "\t-L\t\tLog locally as well as network logging (default is network only)"
1636 #endif
1637 #endif
1638 #endif
1639 DO_COMMA
1640 #endif
1641
1642 #if defined BB_TAIL
1643 #if defined USAGE_ENUM
1644 tail_usage_index
1645 #elif defined USAGE_MESSAGES
1646         "[OPTION]... [FILE]..."
1647 #ifndef BB_FEATURE_TRIVIAL_HELP
1648         "\n\nPrint last 10 lines of each FILE to standard output.\n"
1649         "With more than one FILE, precede each with a header giving the\n"
1650         "file name. With no FILE, or when FILE is -, read standard input.\n\n"
1651         "Options:\n"
1652 #ifndef BB_FEATURE_SIMPLE_TAIL
1653         "\t-c N[kbm]\toutput the last N bytes\n"
1654 #endif
1655         "\t-n N[kbm]\tprint last N lines instead of last 10\n"
1656         "\t-f\t\toutput data as the file grows"
1657 #ifndef BB_FEATURE_SIMPLE_TAIL
1658         "\n\t-q\t\tnever output headers giving file names\n"
1659         "\t-s SEC\t\twait SEC seconds between reads with -f\n"
1660         "\t-v\t\talways output headers giving file names\n\n"
1661         "If the first character of N (bytes or lines) is a `+', output begins with \n"
1662         "the Nth item from the start of each file, otherwise, print the last N items\n"
1663         "in the file. N bytes may be suffixed by k (x1024), b (x512), or m (1024^2)."
1664 //#else
1665 //      "\nIf the first character of N (bytes or lines) is a `+', output begins with \n"
1666 //      "the Nth item from the start of each file."
1667 #endif
1668 #endif
1669 #endif
1670 DO_COMMA
1671 #endif
1672
1673 #if defined BB_TAR
1674 #if defined USAGE_ENUM
1675 tar_usage_index
1676 #elif defined USAGE_MESSAGES
1677 #ifdef BB_FEATURE_TAR_CREATE
1678         "-[cxtvO] "
1679 #else
1680         "-[xtvO] "
1681 #endif
1682 #if defined BB_FEATURE_TAR_EXCLUDE
1683         "[--exclude File] "
1684         "[-X File]"
1685 #endif
1686         "[-f tarFile] [FILE(s)] ..."
1687 #ifndef BB_FEATURE_TRIVIAL_HELP
1688         "\n\nCreate, extract, or list files from a tar file.\n\n"
1689         "Main operation mode:\n"
1690 #ifdef BB_FEATURE_TAR_CREATE
1691         "\tc\t\tcreate\n"
1692 #endif
1693         "\tx\t\textract\n"
1694         "\tt\t\tlist\n"
1695         "\nFile selection:\n"
1696         "\tf\t\tname of tarfile or \"-\" for stdin\n"
1697         "\tO\t\textract to stdout\n"
1698 #if defined BB_FEATURE_TAR_EXCLUDE
1699         "\texclude\t\tfile to exclude\n"
1700         "\tX\t\tfile with names to exclude\n"
1701 #endif
1702         "\nInformative output:\n"
1703         "\tv\t\tverbosely list files processed"
1704 #endif
1705 #endif
1706 DO_COMMA
1707 #endif
1708
1709 #if defined BB_TEE
1710 #if defined USAGE_ENUM
1711 tee_usage_index
1712 #elif defined USAGE_MESSAGES
1713         "[OPTION]... [FILE]..."
1714 #ifndef BB_FEATURE_TRIVIAL_HELP
1715         "\n\nCopy standard input to each FILE, and also to standard output.\n\n"
1716         "Options:\n" "\t-a\tappend to the given FILEs, do not overwrite"
1717 #endif
1718 #endif
1719 DO_COMMA
1720 #endif
1721
1722 #if defined BB_TELNET
1723 #if defined USAGE_ENUM
1724 telnet_usage_index
1725 #elif defined USAGE_MESSAGES
1726         "host [port]"
1727 #ifndef BB_FEATURE_TRIVIAL_HELP
1728         "\n\nTelnet is used to establish interactive communication with another\n"
1729         "computer over a network using the TELNET protocol."
1730 #endif
1731 #endif
1732 DO_COMMA
1733 #endif
1734
1735 #if defined BB_TEST
1736 #if defined USAGE_ENUM
1737 test_usage_index
1738 #elif defined USAGE_MESSAGES
1739         "\ntest EXPRESSION\n"
1740         "or   [ EXPRESSION ]"
1741 #ifndef BB_FEATURE_TRIVIAL_HELP
1742         "\n\nChecks file types and compares values returning an exit\n"
1743         "code determined by the value of EXPRESSION."
1744 #endif
1745 #endif
1746 DO_COMMA
1747 #endif
1748
1749 #if defined BB_TOUCH
1750 #if defined USAGE_ENUM
1751 touch_usage_index
1752 #elif defined USAGE_MESSAGES
1753         "[-c] file [file ...]"
1754 #ifndef BB_FEATURE_TRIVIAL_HELP
1755         "\n\nUpdate the last-modified date on the given file[s].\n\n"
1756         "Options:\n"
1757         "\t-c\tDo not create any files"
1758 #endif
1759 #endif
1760 DO_COMMA
1761 #endif
1762
1763 #if defined BB_TR
1764 #if defined USAGE_ENUM
1765 tr_usage_index
1766 #elif defined USAGE_MESSAGES
1767         "[-cds] STRING1 [STRING2]"
1768 #ifndef BB_FEATURE_TRIVIAL_HELP
1769         "\n\nTranslate, squeeze, and/or delete characters from\n"
1770         "standard input, writing to standard output.\n\n"
1771         "Options:\n"
1772         "\t-c\ttake complement of STRING1\n"
1773         "\t-d\tdelete input characters coded STRING1\n"
1774         "\t-s\tsqueeze multiple output characters of STRING2 into one character"
1775 #endif
1776 #endif
1777 DO_COMMA
1778 #endif
1779
1780 #if defined BB_TRUE_FALSE
1781 #if defined USAGE_ENUM
1782 true_usage_index
1783 #elif defined USAGE_MESSAGES
1784         ""
1785 #ifndef BB_FEATURE_TRIVIAL_HELP
1786         "\n\nReturn an exit code of TRUE (0)."
1787 #endif
1788 #endif
1789 DO_COMMA
1790 #endif
1791
1792 #if defined BB_TTY
1793 #if defined USAGE_ENUM
1794 tty_usage_index
1795 #elif defined USAGE_MESSAGES
1796         ""
1797 #ifndef BB_FEATURE_TRIVIAL_HELP
1798         "\n\nPrint the file name of the terminal connected to standard input.\n\n"
1799         "Options:\n"
1800         "\t-s\tprint nothing, only return an exit status"
1801 #endif
1802 #endif
1803 DO_COMMA
1804 #endif
1805
1806 #if defined BB_UMOUNT
1807 #if defined USAGE_ENUM
1808 umount_usage_index
1809 #elif defined USAGE_MESSAGES
1810         "[flags] filesystem|directory"
1811 #ifndef BB_FEATURE_TRIVIAL_HELP
1812         "\nUnmount file systems\n"
1813         "\nFlags:\n" "\t-a:\tUnmount all file systems"
1814 #ifdef BB_MTAB
1815         " in /etc/mtab\n\t-n:\tDon't erase /etc/mtab entries\n"
1816 #else
1817         "\n"
1818 #endif
1819         "\t-r:\tTry to remount devices as read-only if mount is busy"
1820 #if defined BB_FEATURE_MOUNT_FORCE
1821         "\n\t-f:\tForce filesystem umount (i.e. unreachable NFS server)"
1822 #endif
1823 #if defined BB_FEATURE_MOUNT_LOOP
1824         "\n\t-l:\tDo not free loop device (if a loop device has been used)"
1825 #endif
1826 #endif
1827 #endif
1828 DO_COMMA
1829 #endif
1830
1831 #if defined BB_UNAME
1832 #if defined USAGE_ENUM
1833 uname_usage_index
1834 #elif defined USAGE_MESSAGES
1835         "[OPTION]..."
1836 #ifndef BB_FEATURE_TRIVIAL_HELP
1837         "\n\nPrint certain system information.  With no OPTION, same as -s.\n\n"
1838         "Options:\n"
1839         "\t-a\tprint all information\n"
1840         "\t-m\tthe machine (hardware) type\n"
1841         "\t-n\tprint the machine's network node hostname\n"
1842         "\t-r\tprint the operating system release\n"
1843         "\t-s\tprint the operating system name\n"
1844
1845         "\t-p\tprint the host processor type\n"
1846         "\t-v\tprint the operating system version"
1847 #endif
1848 #endif
1849 DO_COMMA
1850 #endif
1851
1852 #if defined BB_UNIQ
1853 #if defined USAGE_ENUM
1854 uniq_usage_index
1855 #elif defined USAGE_MESSAGES
1856         "[OPTION]... [INPUT [OUTPUT]]"
1857 #ifndef BB_FEATURE_TRIVIAL_HELP
1858         "\n\nDiscard all but one of successive identical lines from INPUT\n"
1859         "(or standard input), writing to OUTPUT (or standard output).\n"
1860         "Options:\n"
1861         "\t-c\tprefix lines by the number of occurrences\n"
1862         "\t-d\tonly print duplicate lines\n"
1863         "\t-u\tonly print unique lines"
1864 #endif
1865 #endif
1866 DO_COMMA
1867 #endif
1868
1869 #if defined BB_UNIX2DOS
1870 #if defined USAGE_ENUM
1871 unix2dos_usage_index
1872 #elif defined USAGE_MESSAGES
1873         "< unixfile > dosfile"
1874 #ifndef BB_FEATURE_TRIVIAL_HELP
1875         "\n\nConverts a text file from unix format to dos format."
1876 #endif
1877 #endif
1878 DO_COMMA
1879 #endif
1880
1881 #if defined BB_UPDATE
1882 #if defined USAGE_ENUM
1883 update_usage_index
1884 #elif defined USAGE_MESSAGES
1885         "[options]"
1886 #ifndef BB_FEATURE_TRIVIAL_HELP
1887         "\n\nPeriodically flushes filesystem buffers.\n\n"
1888         "Options:\n"
1889         "\t-S\tforce use of sync(2) instead of flushing\n"
1890         "\t-s SECS\tcall sync this often (default 30)\n"
1891         "\t-f SECS\tflush some buffers this often (default 5)"
1892 #endif
1893 #endif
1894 DO_COMMA
1895 #endif
1896
1897 #if defined BB_UPTIME
1898 #if defined USAGE_ENUM
1899 uptime_usage_index
1900 #elif defined USAGE_MESSAGES
1901         ""
1902 #ifndef BB_FEATURE_TRIVIAL_HELP
1903         "\n\nDisplay the time since the last boot."
1904 #endif
1905 #endif
1906 DO_COMMA
1907 #endif
1908
1909 #if defined BB_USLEEP
1910 #if defined USAGE_ENUM
1911 usleep_usage_index
1912 #elif defined USAGE_MESSAGES
1913         "N" 
1914 #ifndef BB_FEATURE_TRIVIAL_HELP
1915         "\n\nPause for N microseconds."
1916 #endif
1917 #endif
1918 DO_COMMA
1919 #endif
1920
1921 #if defined BB_UUDECODE
1922 #if defined USAGE_ENUM
1923 uudecode_usage_index
1924 #elif defined USAGE_MESSAGES
1925         "[FILE]..."
1926 #ifndef BB_FEATURE_TRIVIAL_HELP
1927         "\n\nUudecode a file that is uuencoded.\n\n"
1928         "Options:\n"
1929         "\t-o FILE\tdirect output to FILE"
1930 #endif
1931 #endif
1932 DO_COMMA
1933 #endif
1934
1935 #if defined BB_UUENCODE
1936 #if defined USAGE_ENUM
1937 uuencode_usage_index
1938 #elif defined USAGE_MESSAGES
1939         "[OPTION] [INFILE] REMOTEFILE"
1940 #ifndef BB_FEATURE_TRIVIAL_HELP
1941         "\n\nUuencode a file.\n\n"
1942         "Options:\n"
1943         "\t-m\tuse base64 encoding as of RFC1521"
1944 #endif
1945 #endif
1946 DO_COMMA
1947 #endif
1948
1949 #if defined BB_WATCHDOG
1950 #if defined USAGE_ENUM
1951 watchdog_usage_index
1952 #elif defined USAGE_MESSAGES
1953         "dev"
1954 #ifndef BB_FEATURE_TRIVIAL_HELP
1955         "\n\nPeriodically write to watchdog device \"dev\""
1956 #endif
1957 #endif
1958 DO_COMMA
1959 #endif
1960
1961 #if defined BB_WC
1962 #if defined USAGE_ENUM
1963 wc_usage_index
1964 #elif defined USAGE_MESSAGES
1965         "[OPTION]... [FILE]..."
1966 #ifndef BB_FEATURE_TRIVIAL_HELP
1967         "\n\nPrint line, word, and byte counts for each FILE, and a total line if\n"
1968         "more than one FILE is specified.  With no FILE, read standard input.\n\n"
1969         "Options:\n"
1970         "\t-c\tprint the byte counts\n"
1971         "\t-l\tprint the newline counts\n"
1972
1973         "\t-L\tprint the length of the longest line\n"
1974         "\t-w\tprint the word counts"
1975 #endif
1976 #endif
1977 DO_COMMA
1978 #endif
1979
1980 #if defined BB_WGET
1981 #if defined USAGE_ENUM
1982 wget_usage_index
1983 #elif defined USAGE_MESSAGES
1984  "[-c] [-O file] url"
1985 #ifndef BB_FEATURE_TRIVIAL_HELP
1986         "\n\nwget retrieves files via HTTP\n\n"
1987         "Options:\n"
1988         "\t-c\tcontinue retrieval of aborted transfers\n"
1989         "\t-O\tsave to filename ('-' for stdout)"
1990 #endif
1991 #endif
1992 DO_COMMA
1993 #endif
1994
1995 #if defined BB_WHICH
1996 #if defined USAGE_ENUM
1997 which_usage_index
1998 #elif defined USAGE_MESSAGES
1999         "[COMMAND ...]"
2000 #ifndef BB_FEATURE_TRIVIAL_HELP
2001         "\n\nLocates a COMMAND."
2002 #endif
2003 #endif
2004 DO_COMMA
2005 #endif
2006
2007 #if defined BB_WHOAMI
2008 #if defined USAGE_ENUM
2009 whoami_usage_index
2010 #elif defined USAGE_MESSAGES
2011         ""
2012 #ifndef BB_FEATURE_TRIVIAL_HELP
2013         "\n\nPrints the user name associated with the current effective user id."
2014 #endif
2015 #endif
2016 DO_COMMA
2017 #endif
2018
2019 #if defined BB_XARGS
2020 #if defined USAGE_ENUM
2021 xargs_usage_index
2022 #elif defined USAGE_MESSAGES
2023  "[COMMAND] [ARGS...]"
2024 #ifndef BB_FEATURE_TRIVIAL_HELP
2025         "\n\nExecutes COMMAND on every item given by standard input." 
2026 #endif
2027 #endif
2028 DO_COMMA
2029 #endif
2030
2031 #if defined BB_YES
2032 #if defined USAGE_ENUM
2033 yes_usage_index
2034 #elif defined USAGE_MESSAGES
2035         "[OPTION]... [STRING]..."
2036 #ifndef BB_FEATURE_TRIVIAL_HELP
2037         "\n\nRepeatedly outputs a line with all specified STRING(s), or `y'."
2038 #endif
2039 #endif
2040 DO_COMMA
2041 #endif
2042
2043 #if defined USAGE_ENUM || defined USAGE_MESSAGES
2044 };
2045 #endif
2046
2047 #undef DOCOMMA
2048 #undef USAGE_ENUM
2049 #undef USAGE_MESSAGES
2050