aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen <andersen@codepoet.org>2001-02-22 23:32:59 +0000
committerEric Andersen <andersen@codepoet.org>2001-02-22 23:32:59 +0000
commit4b2e69a1cfe1a174cdc8717e2cebb23b09b16c32 (patch)
treeafdf9b7eae64b748a9621531e6bddfaf1904493c
parente13bc0bc68363e8e8c413cdf0cb2ba6fd67c8b43 (diff)
downloadbusybox-w32-4b2e69a1cfe1a174cdc8717e2cebb23b09b16c32.tar.gz
busybox-w32-4b2e69a1cfe1a174cdc8717e2cebb23b09b16c32.tar.bz2
busybox-w32-4b2e69a1cfe1a174cdc8717e2cebb23b09b16c32.zip
Commit a few updates to the usage messages.
-rw-r--r--applets/usage.h167
-rw-r--r--include/usage.h167
-rw-r--r--usage.h167
3 files changed, 219 insertions, 282 deletions
diff --git a/applets/usage.h b/applets/usage.h
index b39fec924..a7cb9a6be 100644
--- a/applets/usage.h
+++ b/applets/usage.h
@@ -25,20 +25,23 @@
25 "[OPTION]... GROUP FILE..." 25 "[OPTION]... GROUP FILE..."
26#define chgrp_full_usage \ 26#define chgrp_full_usage \
27 "Change the group membership of each FILE to GROUP.\n" \ 27 "Change the group membership of each FILE to GROUP.\n" \
28 "\nOptions:\n\t-R\tChanges files and directories recursively." 28 "\nOptions:\n" \
29 "\t-R\tChanges files and directories recursively."
29 30
30#define chmod_trivial_usage \ 31#define chmod_trivial_usage \
31 "[-R] MODE[,MODE]... FILE..." 32 "[-R] MODE[,MODE]... FILE..."
32#define chmod_full_usage \ 33#define chmod_full_usage \
33 "Each MODE is one or more of the letters ugoa, one of the symbols +-= and\n" \ 34 "Each MODE is one or more of the letters ugoa, one of the\n" \
34 "one or more of the letters rwxst.\n\n" \ 35 "symbols +-= and one or more of the letters rwxst.\n\n" \
35 "Options:\n\t-R\tChanges files and directories recursively." 36 "Options:\n" \
37 "\t-R\tChanges files and directories recursively."
36 38
37#define chown_trivial_usage \ 39#define chown_trivial_usage \
38 "[OPTION]... OWNER[<.|:>[GROUP] FILE..." 40 "[OPTION]... OWNER[<.|:>[GROUP] FILE..."
39#define chown_full_usage \ 41#define chown_full_usage \
40 "Change the owner and/or group of each FILE to OWNER and/or GROUP.\n" \ 42 "Change the owner and/or group of each FILE to OWNER and/or GROUP.\n" \
41 "\nOptions:\n\t-R\tChanges files and directories recursively." 43 "\nOptions:\n" \
44 "\t-R\tChanges files and directories recursively."
42 45
43#define chroot_trivial_usage \ 46#define chroot_trivial_usage \
44 "NEWROOT [COMMAND...]" 47 "NEWROOT [COMMAND...]"
@@ -87,7 +90,8 @@
87 "[OPTION]... [+FORMAT]\n" 90 "[OPTION]... [+FORMAT]\n"
88#define date_full_usage \ 91#define date_full_usage \
89 "Displays the current time in the given FORMAT, or sets the system date.\n" \ 92 "Displays the current time in the given FORMAT, or sets the system date.\n" \
90 "\nOptions:\n\t-R\t\tOutputs RFC-822 compliant date string\n" \ 93 "\nOptions:\n" \
94 \t-R\t\tOutputs RFC-822 compliant date string\n" \
91 "\t-d STRING\tdisplay time described by STRING, not `now'\n" \ 95 "\t-d STRING\tdisplay time described by STRING, not `now'\n" \
92 "\t-s\t\tSets time described by STRING\n" \ 96 "\t-s\t\tSets time described by STRING\n" \
93 "\t-u\t\tPrints or sets Coordinated Universal Time" 97 "\t-u\t\tPrints or sets Coordinated Universal Time"
@@ -100,7 +104,8 @@
100 "i.e. 'dc 2 2 add' -> 4, and 'dc 8 8 \\* 2 2 + /' -> 16" 104 "i.e. 'dc 2 2 add' -> 4, and 'dc 8 8 \\* 2 2 + /' -> 16"
101 105
102#define dd_trivial_usage \ 106#define dd_trivial_usage \
103 "[if=FILE] [of=FILE] [bs=N] [count=N] [skip=N] [seek=N] [conv=notrunc|sync]" 107 "[if=FILE] [of=FILE] [bs=N] [count=N] [skip=N]\n" \
108 "[seek=N] [conv=notrunc|sync]"
104#define dd_full_usage \ 109#define dd_full_usage \
105 "Copy a file, converting and formatting according to options\n\n" \ 110 "Copy a file, converting and formatting according to options\n\n" \
106 "\tif=FILE\tread from FILE instead of stdin\n" \ 111 "\tif=FILE\tread from FILE instead of stdin\n" \
@@ -127,13 +132,11 @@
127 #define USAGE_HUMAN_READABLE(a,b) b 132 #define USAGE_HUMAN_READABLE(a,b) b
128#endif 133#endif
129#define df_trivial_usage \ 134#define df_trivial_usage \
130 "[-" \ 135 "[-" USAGE_HUMAN_READABLE("hm", "") "k] [filesystem ...]"
131 USAGE_HUMAN_READABLE("hm", "") \
132 "k] [filesystem ...]\n"
133#define df_full_usage \ 136#define df_full_usage \
134 "Print the filesystem space used and space available.\n\n" \ 137 "Print the filesystem space used and space available.\n\n" \
135 "Options:\n" \ 138 "Options:\n" \
136USAGE_HUMAN_READABLE( \ 139 USAGE_HUMAN_READABLE( \
137 "\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \ 140 "\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \
138 "\t-m\tprint sizes in megabytes\n" \ 141 "\t-m\tprint sizes in megabytes\n" \
139 "\t-k\tprint sizes in kilobytes(default)", \ 142 "\t-k\tprint sizes in kilobytes(default)", \
@@ -154,9 +157,15 @@ USAGE_HUMAN_READABLE( \
154 "\t-s SIZE\t\tUse a buffer of size SIZE" 157 "\t-s SIZE\t\tUse a buffer of size SIZE"
155 158
156#define dos2unix_trivial_usage \ 159#define dos2unix_trivial_usage \
157 "< dosfile > unixfile" 160 "[option] [file]"
158#define dos2unix_full_usage \ 161#define dos2unix_full_usage \
159 "Converts a text file from dos format to unix format." 162 "Converts a text file to/from dos format to unix format.\n\n" \
163 "Options:\n" \
164 "\t-u\toutput will be in UNIX format\n" \
165 "\t-d\toutput will be in DOS format\n\n" \
166 "- when no option is given then input format will be automaticaly detected\n" \
167 " and converted to the oposite format on output\n" \
168 "- when no file is given, then stdin is used as input and stdout as output"
160 169
161#define dpkg_trivial_usage \ 170#define dpkg_trivial_usage \
162 "[-i|-r|--unpack|--configure] my.deb" 171 "[-i|-r|--unpack|--configure] my.deb"
@@ -182,13 +191,12 @@ USAGE_HUMAN_READABLE( \
182 "Options:\n" \ 191 "Options:\n" \
183 "\t-l\tcount sizes many times if hard linked\n" \ 192 "\t-l\tcount sizes many times if hard linked\n" \
184 "\t-s\tdisplay only a total for each argument" \ 193 "\t-s\tdisplay only a total for each argument" \
185USAGE_HUMAN_READABLE( \ 194 USAGE_HUMAN_READABLE( \
186 "\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \ 195 "\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \
187 "\t-m\tprint sizes in megabytes\n" \ 196 "\t-m\tprint sizes in megabytes\n" \
188 "\t-k\tprint sizes in kilobytes(default)" \ 197 "\t-k\tprint sizes in kilobytes(default)" \
189 , \ 198 , \
190 "\n\t-k\tprint sizes in kilobytes(compatability)" \ 199 "\n\t-k\tprint sizes in kilobytes(compatability)")
191 )
192 200
193#define dumpkmap_trivial_usage \ 201#define dumpkmap_trivial_usage \
194 "> keymap" 202 "> keymap"
@@ -276,7 +284,7 @@ USAGE_HUMAN_READABLE( \
276 "\nEXPRESSION may consist of:\n" \ 284 "\nEXPRESSION may consist of:\n" \
277 "\t-follow\t\tDereference symbolic links.\n" \ 285 "\t-follow\t\tDereference symbolic links.\n" \
278 "\t-name PATTERN\tFile name (leading directories removed) matches PATTERN." \ 286 "\t-name PATTERN\tFile name (leading directories removed) matches PATTERN." \
279USAGE_FIND_TYPE( \ 287 USAGE_FIND_TYPE( \
280 "\n\t-type X\t\tFiletype matches X (where X is one of: f,d,l,b,c,...)" \ 288 "\n\t-type X\t\tFiletype matches X (where X is one of: f,d,l,b,c,...)" \
281) USAGE_FIND_PERM( \ 289) USAGE_FIND_PERM( \
282 "\n\t-perm PERMS\tPermissions match any of (+NNN); all of (-NNN);\n\t\t\tor exactly (NNN)" \ 290 "\n\t-perm PERMS\tPermissions match any of (+NNN); all of (-NNN);\n\t\t\tor exactly (NNN)" \
@@ -361,7 +369,8 @@ USAGE_FIND_TYPE( \
361 "Print first 10 lines of each FILE to standard output.\n" \ 369 "Print first 10 lines of each FILE to standard output.\n" \
362 "With more than one FILE, precede each with a header giving the\n" \ 370 "With more than one FILE, precede each with a header giving the\n" \
363 "file name. With no FILE, or when FILE is -, read standard input.\n\n" \ 371 "file name. With no FILE, or when FILE is -, read standard input.\n\n" \
364 "Options:\n" "\t-n NUM\t\tPrint first NUM lines instead of first 10" 372 "Options:\n" \
373 "\t-n NUM\t\tPrint first NUM lines instead of first 10"
365 374
366#define hostid_trivial_usage \ 375#define hostid_trivial_usage \
367 "" 376 ""
@@ -401,7 +410,7 @@ USAGE_FIND_TYPE( \
401 "Options:\n" \ 410 "Options:\n" \
402 "\t[[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" \ 411 "\t[[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" \
403 "\t[netmask <address>] [dstaddr <address>] [tunnel <adress>]\n" \ 412 "\t[netmask <address>] [dstaddr <address>] [tunnel <adress>]\n" \
404USAGE_SIOCSKEEPALIVE("\t[outfill <NN>] [keepalive <NN>]\n") \ 413 USAGE_SIOCSKEEPALIVE("\t[outfill <NN>] [keepalive <NN>]\n") \
405 "\t[hw ether <address>] [metric <NN>] [mtu <NN>]\n" \ 414 "\t[hw ether <address>] [metric <NN>] [mtu <NN>]\n" \
406 "\t[[-]trailers] [[-]arp] [[-]allmulti]\n" \ 415 "\t[[-]trailers] [[-]arp] [[-]allmulti]\n" \
407 "\t[multicast] [[-]promisc]\n" \ 416 "\t[multicast] [[-]promisc]\n" \
@@ -429,13 +438,15 @@ USAGE_SIOCSKEEPALIVE("\t[outfill <NN>] [keepalive <NN>]\n") \
429 "[-signal] process-id [process-id ...]" 438 "[-signal] process-id [process-id ...]"
430#define kill_full_usage \ 439#define kill_full_usage \
431 "Send a signal (default is SIGTERM) to the specified process(es).\n\n"\ 440 "Send a signal (default is SIGTERM) to the specified process(es).\n\n"\
432 "Options:\n" "\t-l\tList all signal names and numbers." 441 "Options:\n" \
442 "\t-l\tList all signal names and numbers."
433 443
434#define killall_trivial_usage \ 444#define killall_trivial_usage \
435 "[-signal] process-name [process-name ...]" 445 "[-signal] process-name [process-name ...]"
436#define killall_full_usage \ 446#define killall_full_usage \
437 "Send a signal (default is SIGTERM) to the specified process(es).\n\n"\ 447 "Send a signal (default is SIGTERM) to the specified process(es).\n\n"\
438 "Options:\n" "\t-l\tList all signal names and numbers." 448 "Options:\n" \
449 "\t-l\tList all signal names and numbers."
439 450
440#define length_trivial_usage \ 451#define length_trivial_usage \
441 "STRING" 452 "STRING"
@@ -513,14 +524,7 @@ USAGE_SIOCSKEEPALIVE("\t[outfill <NN>] [keepalive <NN>]\n") \
513 #define USAGE_AUTOWIDTH(a) 524 #define USAGE_AUTOWIDTH(a)
514#endif 525#endif
515#define ls_trivial_usage \ 526#define ls_trivial_usage \
516 "[-1Aa" USAGE_LS_TIMESTAMPS("c") \ 527 "[-1Aa" USAGE_LS_TIMESTAMPS("c") "Cd" USAGE_LS_TIMESTAMPS("e") USAGE_LS_FILETYPES("F") "iln" USAGE_LS_FILETYPES("p") USAGE_LS_FOLLOWLINKS("L") USAGE_LS_RECURSIVE("R") USAGE_LS_SORTFILES("rS") "s" USAGE_AUTOWIDTH("T") USAGE_LS_TIMESTAMPS("tu") USAGE_LS_SORTFILES("v") USAGE_AUTOWIDTH("w") "x" USAGE_LS_SORTFILES("X") USAGE_HUMAN_READABLE("h", "") "k] [filenames...]"
517 "Cd" USAGE_LS_TIMESTAMPS("e") USAGE_LS_FILETYPES("F") "iln" \
518 USAGE_LS_FILETYPES("p") USAGE_LS_FOLLOWLINKS("L") \
519 USAGE_LS_RECURSIVE("R") USAGE_LS_SORTFILES("rS") \
520 "s" USAGE_AUTOWIDTH("T") USAGE_LS_TIMESTAMPS("tu") \
521 USAGE_LS_SORTFILES("v") USAGE_AUTOWIDTH("w") "x" \
522 USAGE_LS_SORTFILES("X") USAGE_HUMAN_READABLE("h", "") \
523 "k] [filenames...]"
524#define ls_full_usage \ 528#define ls_full_usage \
525 "List directory contents\n\n" \ 529 "List directory contents\n\n" \
526 "Options:\n" \ 530 "Options:\n" \
@@ -528,59 +532,30 @@ USAGE_SIOCSKEEPALIVE("\t[outfill <NN>] [keepalive <NN>]\n") \
528 "\t-A\tdo not list implied . and ..\n" \ 532 "\t-A\tdo not list implied . and ..\n" \
529 "\t-a\tdo not hide entries starting with .\n" \ 533 "\t-a\tdo not hide entries starting with .\n" \
530 "\t-C\tlist entries by columns\n" \ 534 "\t-C\tlist entries by columns\n" \
531USAGE_LS_TIMESTAMPS( \ 535 USAGE_LS_TIMESTAMPS("\t-c\twith -l: show ctime\n") \
532 "\t-c\twith -l: show ctime (the time of last\n" \
533 "\t\tmodification of file status information)\n" \
534 ) \
535 "\t-d\tlist directory entries instead of contents\n" \ 536 "\t-d\tlist directory entries instead of contents\n" \
536USAGE_LS_TIMESTAMPS( \ 537 USAGE_LS_TIMESTAMPS("\t-e\tlist both full date and full time\n") \
537 "\t-e\tlist both full date and full time\n" \ 538 USAGE_LS_FILETYPES("\t-F\tappend indicator (one of */=@|) to entries\n") \
538 ) \
539USAGE_LS_FILETYPES( \
540 "\t-F\tappend indicator (one of */=@|) to entries\n" \
541 ) \
542 "\t-i\tlist the i-node for each file\n" \ 539 "\t-i\tlist the i-node for each file\n" \
543 "\t-l\tuse a long listing format\n" \ 540 "\t-l\tuse a long listing format\n" \
544 "\t-n\tlist numeric UIDs and GIDs instead of names\n" \ 541 "\t-n\tlist numeric UIDs and GIDs instead of names\n" \
545USAGE_LS_FILETYPES( \ 542 USAGE_LS_FILETYPES("\t-p\tappend indicator (one of /=@|) to entries\n") \
546 "\t-p\tappend indicator (one of /=@|) to entries\n" \ 543 USAGE_LS_FOLLOWLINKS("\t-L\tlist entries pointed to by symbolic links\n") \
547 ) \ 544 USAGE_LS_RECURSIVE("\t-R\tlist subdirectories recursively\n") \
548USAGE_LS_FOLLOWLINKS( \ 545 USAGE_LS_SORTFILES("\t-r\tsort the listing in reverse order\n") \
549 "\t-L\tlist entries pointed to by symbolic links\n" \ 546 USAGE_LS_SORTFILES("\t-S\tsort the listing by file size\n") \
550 ) \
551USAGE_LS_RECURSIVE( \
552 "\t-R\tlist subdirectories recursively\n" \
553 ) \
554USAGE_LS_SORTFILES( \
555 "\t-r\tsort the listing in reverse order\n" \
556 "\t-S\tsort the listing by file size\n" \
557 ) \
558 "\t-s\tlist the size of each file, in blocks\n" \ 547 "\t-s\tlist the size of each file, in blocks\n" \
559USAGE_AUTOWIDTH( \ 548 USAGE_AUTOWIDTH("\t-T NUM\tassume Tabstop every NUM columns\n") \
560 "\t-T NUM\tassume Tabstop every NUM columns\n" \ 549 USAGE_LS_TIMESTAMPS("\t-t\twith -l: show modification time\n") \
561 ) \ 550 USAGE_LS_TIMESTAMPS("\t-u\twith -l: show access time\n") \
562USAGE_LS_TIMESTAMPS( \ 551 USAGE_LS_SORTFILES("\t-v\tsort the listing by version\n") \
563 "\t-t\twith -l: show modification time (the time of last\n" \ 552 USAGE_AUTOWIDTH("\t-w NUM\tassume the terminal is NUM columns wide\n") \
564 "\t\tchange of the file)\n" \
565 "\t-u\twith -l: show access time (the time of last\n" \
566 "\t\taccess of the file)\n" \
567 ) \
568USAGE_LS_SORTFILES( \
569 "\t-v\tsort the listing by version\n" \
570 ) \
571USAGE_AUTOWIDTH( \
572 "\t-w NUM\tassume the terminal is NUM columns wide\n" \
573 ) \
574 "\t-x\tlist entries by lines instead of by columns\n" \ 553 "\t-x\tlist entries by lines instead of by columns\n" \
575USAGE_LS_SORTFILES( \ 554 USAGE_LS_SORTFILES("\t-X\tsort the listing by extension\n") \
576 "\t-X\tsort the listing by extension\n" \ 555 USAGE_HUMAN_READABLE( \
577 ) \
578USAGE_HUMAN_READABLE( \
579 "\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \ 556 "\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \
580 "\t-k\tprint sizes in kilobytes(default)" \ 557 "\t-k\tprint sizes in kilobytes(default)" , \
581 , \ 558 "\t-k\tprint sizes in kilobytes(compatability)")
582 "\t-k\tprint sizes in kilobytes(compatability)" \
583 ) \
584 559
585#define lsmod_trivial_usage \ 560#define lsmod_trivial_usage \
586 "" 561 ""
@@ -603,7 +578,8 @@ USAGE_HUMAN_READABLE( \
603 "\tmakedevs /dev/hda b 3 0 0 8 s -> hda,hda1-hda8" 578 "\tmakedevs /dev/hda b 3 0 0 8 s -> hda,hda1-hda8"
604 579
605#define md5sum_trivial_usage \ 580#define md5sum_trivial_usage \
606 "[OPTION] [FILE]...\nor: md5sum [OPTION] -c [FILE]" 581 "[OPTION] [FILE]...\n" \
582 "or: md5sum [OPTION] -c [FILE]"
607#define md5sum_full_usage \ 583#define md5sum_full_usage \
608 "Print or check MD5 checksums.\n\n" \ 584 "Print or check MD5 checksums.\n\n" \
609 "Options:\n" \ 585 "Options:\n" \
@@ -657,7 +633,8 @@ USAGE_HUMAN_READABLE( \
657 "[-c] [-v0|-v1] device [block-count]" 633 "[-c] [-v0|-v1] device [block-count]"
658#define mkswap_full_usage \ 634#define mkswap_full_usage \
659 "Prepare a disk partition to be used as a swap partition.\n\n" \ 635 "Prepare a disk partition to be used as a swap partition.\n\n" \
660 "Options:\n" "\t-c\t\tCheck for read-ability.\n" \ 636 "Options:\n" \
637 "\t-c\t\tCheck for read-ability.\n" \
661 "\t-v0\t\tMake version 0 swap [max 128 Megs].\n" \ 638 "\t-v0\t\tMake version 0 swap [max 128 Megs].\n" \
662 "\t-v1\t\tMake version 1 swap [big!] (default for kernels > 2.1.117).\n" \ 639 "\t-v1\t\tMake version 1 swap [big!] (default for kernels > 2.1.117).\n" \
663 "\tblock-count\tNumber of block to use (default is entire partition)." 640 "\tblock-count\tNumber of block to use (default is entire partition)."
@@ -689,7 +666,7 @@ USAGE_HUMAN_READABLE( \
689 "Mount a filesystem\n\n" \ 666 "Mount a filesystem\n\n" \
690 "Flags:\n" \ 667 "Flags:\n" \
691 "\t-a:\t\tMount all filesystems in fstab.\n" \ 668 "\t-a:\t\tMount all filesystems in fstab.\n" \
692USAGE_MTAB( \ 669 USAGE_MTAB( \
693 "\t-f:\t\t\"Fake\" mount. Add entry to mount table but don't mount it.\n" \ 670 "\t-f:\t\t\"Fake\" mount. Add entry to mount table but don't mount it.\n" \
694 "\t-n:\t\tDon't write a mount table entry.\n" \ 671 "\t-n:\t\tDon't write a mount table entry.\n" \
695 ) \ 672 ) \
@@ -703,7 +680,7 @@ USAGE_MTAB( \
703 "\tatime/noatime:\tEnable / disable updates to inode access times.\n" \ 680 "\tatime/noatime:\tEnable / disable updates to inode access times.\n" \
704 "\tdev/nodev:\tAllow use of special device files / disallow them.\n" \ 681 "\tdev/nodev:\tAllow use of special device files / disallow them.\n" \
705 "\texec/noexec:\tAllow use of executable files / disallow them.\n" \ 682 "\texec/noexec:\tAllow use of executable files / disallow them.\n" \
706USAGE_MOUNT_LOOP( \ 683 USAGE_MOUNT_LOOP( \
707 "\tloop:\t\tMounts a file via loop device.\n" \ 684 "\tloop:\t\tMounts a file via loop device.\n" \
708 ) \ 685 ) \
709 "\tsuid/nosuid:\tAllow set-user-id-root programs / disallow them.\n" \ 686 "\tsuid/nosuid:\tAllow set-user-id-root programs / disallow them.\n" \
@@ -723,7 +700,8 @@ USAGE_MOUNT_LOOP( \
723 "setpart tell unload unlock weof wset" 700 "setpart tell unload unlock weof wset"
724 701
725#define mv_trivial_usage \ 702#define mv_trivial_usage \
726 "SOURCE DEST\n or: mv SOURCE... DIRECTORY" 703 "SOURCE DEST\n" \
704 "or: mv SOURCE... DIRECTORY"
727#define mv_full_usage \ 705#define mv_full_usage \
728 "Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY." 706 "Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY."
729 707
@@ -862,7 +840,8 @@ USAGE_MOUNT_LOOP( \
862 "and KEYCODE is given in decimal" 840 "and KEYCODE is given in decimal"
863 841
864#define sh_trivial_usage \ 842#define sh_trivial_usage \
865 "[FILE]...\n or: sh -c command [args]..." 843 "[FILE]...\n" \
844 "or: sh -c command [args]..."
866#define sh_full_usage \ 845#define sh_full_usage \
867 "lash: The BusyBox command interpreter (shell)." 846 "lash: The BusyBox command interpreter (shell)."
868 847
@@ -930,9 +909,9 @@ USAGE_MOUNT_LOOP( \
930 "Options:\n" \ 909 "Options:\n" \
931 "\t-m NUM\t\tInterval between MARK lines (default=20min, 0=off)\n" \ 910 "\t-m NUM\t\tInterval between MARK lines (default=20min, 0=off)\n" \
932 "\t-n\t\tRun as a foreground process\n" \ 911 "\t-n\t\tRun as a foreground process\n" \
933USAGE_KLOGD("\t-K\t\tDo not start up the klogd process\n") \ 912 USAGE_KLOGD("\t-K\t\tDo not start up the klogd process\n") \
934 "\t-O FILE\t\tUse an alternate log file (default=/var/log/messages)" \ 913 "\t-O FILE\t\tUse an alternate log file (default=/var/log/messages)" \
935USAGE_REMOTE_LOG( \ 914 USAGE_REMOTE_LOG( \
936 "\n\t-R HOST[:PORT]\t\tLog remotely to IP or hostname on PORT (default PORT=514/UDP)\n" \ 915 "\n\t-R HOST[:PORT]\t\tLog remotely to IP or hostname on PORT (default PORT=514/UDP)\n" \
937 "\t-L\t\tLog locally as well as network logging (default is network only)") 916 "\t-L\t\tLog locally as well as network logging (default is network only)")
938 917
@@ -949,10 +928,10 @@ USAGE_REMOTE_LOG( \
949 "With more than one FILE, precede each with a header giving the\n" \ 928 "With more than one FILE, precede each with a header giving the\n" \
950 "file name. With no FILE, or when FILE is -, read standard input.\n\n" \ 929 "file name. With no FILE, or when FILE is -, read standard input.\n\n" \
951 "Options:\n" \ 930 "Options:\n" \
952USAGE_UNSIMPLE_TAIL("\t-c N[kbm]\toutput the last N bytes\n") \ 931 USAGE_UNSIMPLE_TAIL("\t-c N[kbm]\toutput the last N bytes\n") \
953 "\t-n N[kbm]\tprint last N lines instead of last 10\n" \ 932 "\t-n N[kbm]\tprint last N lines instead of last 10\n" \
954 "\t-f\t\toutput data as the file grows" \ 933 "\t-f\t\toutput data as the file grows" \
955USAGE_UNSIMPLE_TAIL( \ 934 USAGE_UNSIMPLE_TAIL( \
956 "\n\t-q\t\tnever output headers giving file names\n" \ 935 "\n\t-q\t\tnever output headers giving file names\n" \
957 "\t-s SEC\t\twait SEC seconds between reads with -f\n" \ 936 "\t-s SEC\t\twait SEC seconds between reads with -f\n" \
958 "\t-v\t\talways output headers giving file names\n\n" \ 937 "\t-v\t\talways output headers giving file names\n\n" \
@@ -978,13 +957,13 @@ USAGE_UNSIMPLE_TAIL( \
978#define tar_full_usage \ 957#define tar_full_usage \
979 "Create, extract, or list files from a tar file.\n\n" \ 958 "Create, extract, or list files from a tar file.\n\n" \
980 "Main operation mode:\n" \ 959 "Main operation mode:\n" \
981USAGE_TAR_CREATE("\tc\t\tcreate\n") \ 960 USAGE_TAR_CREATE("\tc\t\tcreate\n") \
982 "\tx\t\textract\n" \ 961 "\tx\t\textract\n" \
983 "\tt\t\tlist\n" \ 962 "\tt\t\tlist\n" \
984 "\nFile selection:\n" \ 963 "\nFile selection:\n" \
985 "\tf\t\tname of tarfile or \"-\" for stdin\n" \ 964 "\tf\t\tname of tarfile or \"-\" for stdin\n" \
986 "\tO\t\textract to stdout\n" \ 965 "\tO\t\textract to stdout\n" \
987USAGE_TAR_EXCLUDE( \ 966 USAGE_TAR_EXCLUDE( \
988 "\texclude\t\tfile to exclude\n" \ 967 "\texclude\t\tfile to exclude\n" \
989 "\tX\t\tfile with names to exclude\n" \ 968 "\tX\t\tfile with names to exclude\n" \
990 ) \ 969 ) \
@@ -995,7 +974,8 @@ USAGE_TAR_EXCLUDE( \
995 "[OPTION]... [FILE]..." 974 "[OPTION]... [FILE]..."
996#define tee_full_usage \ 975#define tee_full_usage \
997 "Copy standard input to each FILE, and also to standard output.\n\n" \ 976 "Copy standard input to each FILE, and also to standard output.\n\n" \
998 "Options:\n" "\t-a\tappend to the given FILEs, do not overwrite" 977 "Options:\n" \
978 "\t-a\tappend to the given FILEs, do not overwrite"
999 979
1000#define telnet_trivial_usage \ 980#define telnet_trivial_usage \
1001 "host [port]" 981 "host [port]"
@@ -1048,11 +1028,10 @@ USAGE_TAR_EXCLUDE( \
1048#define umount_full_usage \ 1028#define umount_full_usage \
1049 "Unmount file systems\n" \ 1029 "Unmount file systems\n" \
1050 "\nFlags:\n" "\t-a:\tUnmount all file systems" \ 1030 "\nFlags:\n" "\t-a:\tUnmount all file systems" \
1051USAGE_MTAB(" in /etc/mtab\n\t-n:\tDon't erase /etc/mtab entries") \ 1031 USAGE_MTAB(" in /etc/mtab\n\t-n:\tDon't erase /etc/mtab entries") \
1052 "\n\t-r:\tTry to remount devices as read-only if mount is busy" \ 1032 "\n\t-r:\tTry to remount devices as read-only if mount is busy" \
1053USAGE_MOUNT_FORCE("\n\t-f:\tForce filesystem umount (i.e. unreachable NFS server)") \ 1033 USAGE_MOUNT_FORCE("\n\t-f:\tForce filesystem umount (i.e. unreachable NFS server)") \
1054USAGE_MOUNT_LOOP("\n\t-l:\tDo not free loop device (if a loop device has been used)" \ 1034 USAGE_MOUNT_LOOP("\n\t-l:\tDo not free loop device (if a loop device has been used)")
1055 )
1056 1035
1057#define uname_trivial_usage \ 1036#define uname_trivial_usage \
1058 "[OPTION]..." 1037 "[OPTION]..."
@@ -1078,9 +1057,9 @@ USAGE_MOUNT_LOOP("\n\t-l:\tDo not free loop device (if a loop device has been us
1078 "\t-u\tonly print unique lines" 1057 "\t-u\tonly print unique lines"
1079 1058
1080#define unix2dos_trivial_usage \ 1059#define unix2dos_trivial_usage \
1081 "< unixfile > dosfile" 1060 "[option] [file]"
1082#define unix2dos_full_usage \ 1061#define unix2dos_full_usage \
1083 "Converts a text file from unix format to dos format." 1062 "See 'dos2unix --help' for help!"
1084 1063
1085#define update_trivial_usage \ 1064#define update_trivial_usage \
1086 "[options]" 1065 "[options]"
diff --git a/include/usage.h b/include/usage.h
index b39fec924..a7cb9a6be 100644
--- a/include/usage.h
+++ b/include/usage.h
@@ -25,20 +25,23 @@
25 "[OPTION]... GROUP FILE..." 25 "[OPTION]... GROUP FILE..."
26#define chgrp_full_usage \ 26#define chgrp_full_usage \
27 "Change the group membership of each FILE to GROUP.\n" \ 27 "Change the group membership of each FILE to GROUP.\n" \
28 "\nOptions:\n\t-R\tChanges files and directories recursively." 28 "\nOptions:\n" \
29 "\t-R\tChanges files and directories recursively."
29 30
30#define chmod_trivial_usage \ 31#define chmod_trivial_usage \
31 "[-R] MODE[,MODE]... FILE..." 32 "[-R] MODE[,MODE]... FILE..."
32#define chmod_full_usage \ 33#define chmod_full_usage \
33 "Each MODE is one or more of the letters ugoa, one of the symbols +-= and\n" \ 34 "Each MODE is one or more of the letters ugoa, one of the\n" \
34 "one or more of the letters rwxst.\n\n" \ 35 "symbols +-= and one or more of the letters rwxst.\n\n" \
35 "Options:\n\t-R\tChanges files and directories recursively." 36 "Options:\n" \
37 "\t-R\tChanges files and directories recursively."
36 38
37#define chown_trivial_usage \ 39#define chown_trivial_usage \
38 "[OPTION]... OWNER[<.|:>[GROUP] FILE..." 40 "[OPTION]... OWNER[<.|:>[GROUP] FILE..."
39#define chown_full_usage \ 41#define chown_full_usage \
40 "Change the owner and/or group of each FILE to OWNER and/or GROUP.\n" \ 42 "Change the owner and/or group of each FILE to OWNER and/or GROUP.\n" \
41 "\nOptions:\n\t-R\tChanges files and directories recursively." 43 "\nOptions:\n" \
44 "\t-R\tChanges files and directories recursively."
42 45
43#define chroot_trivial_usage \ 46#define chroot_trivial_usage \
44 "NEWROOT [COMMAND...]" 47 "NEWROOT [COMMAND...]"
@@ -87,7 +90,8 @@
87 "[OPTION]... [+FORMAT]\n" 90 "[OPTION]... [+FORMAT]\n"
88#define date_full_usage \ 91#define date_full_usage \
89 "Displays the current time in the given FORMAT, or sets the system date.\n" \ 92 "Displays the current time in the given FORMAT, or sets the system date.\n" \
90 "\nOptions:\n\t-R\t\tOutputs RFC-822 compliant date string\n" \ 93 "\nOptions:\n" \
94 \t-R\t\tOutputs RFC-822 compliant date string\n" \
91 "\t-d STRING\tdisplay time described by STRING, not `now'\n" \ 95 "\t-d STRING\tdisplay time described by STRING, not `now'\n" \
92 "\t-s\t\tSets time described by STRING\n" \ 96 "\t-s\t\tSets time described by STRING\n" \
93 "\t-u\t\tPrints or sets Coordinated Universal Time" 97 "\t-u\t\tPrints or sets Coordinated Universal Time"
@@ -100,7 +104,8 @@
100 "i.e. 'dc 2 2 add' -> 4, and 'dc 8 8 \\* 2 2 + /' -> 16" 104 "i.e. 'dc 2 2 add' -> 4, and 'dc 8 8 \\* 2 2 + /' -> 16"
101 105
102#define dd_trivial_usage \ 106#define dd_trivial_usage \
103 "[if=FILE] [of=FILE] [bs=N] [count=N] [skip=N] [seek=N] [conv=notrunc|sync]" 107 "[if=FILE] [of=FILE] [bs=N] [count=N] [skip=N]\n" \
108 "[seek=N] [conv=notrunc|sync]"
104#define dd_full_usage \ 109#define dd_full_usage \
105 "Copy a file, converting and formatting according to options\n\n" \ 110 "Copy a file, converting and formatting according to options\n\n" \
106 "\tif=FILE\tread from FILE instead of stdin\n" \ 111 "\tif=FILE\tread from FILE instead of stdin\n" \
@@ -127,13 +132,11 @@
127 #define USAGE_HUMAN_READABLE(a,b) b 132 #define USAGE_HUMAN_READABLE(a,b) b
128#endif 133#endif
129#define df_trivial_usage \ 134#define df_trivial_usage \
130 "[-" \ 135 "[-" USAGE_HUMAN_READABLE("hm", "") "k] [filesystem ...]"
131 USAGE_HUMAN_READABLE("hm", "") \
132 "k] [filesystem ...]\n"
133#define df_full_usage \ 136#define df_full_usage \
134 "Print the filesystem space used and space available.\n\n" \ 137 "Print the filesystem space used and space available.\n\n" \
135 "Options:\n" \ 138 "Options:\n" \
136USAGE_HUMAN_READABLE( \ 139 USAGE_HUMAN_READABLE( \
137 "\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \ 140 "\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \
138 "\t-m\tprint sizes in megabytes\n" \ 141 "\t-m\tprint sizes in megabytes\n" \
139 "\t-k\tprint sizes in kilobytes(default)", \ 142 "\t-k\tprint sizes in kilobytes(default)", \
@@ -154,9 +157,15 @@ USAGE_HUMAN_READABLE( \
154 "\t-s SIZE\t\tUse a buffer of size SIZE" 157 "\t-s SIZE\t\tUse a buffer of size SIZE"
155 158
156#define dos2unix_trivial_usage \ 159#define dos2unix_trivial_usage \
157 "< dosfile > unixfile" 160 "[option] [file]"
158#define dos2unix_full_usage \ 161#define dos2unix_full_usage \
159 "Converts a text file from dos format to unix format." 162 "Converts a text file to/from dos format to unix format.\n\n" \
163 "Options:\n" \
164 "\t-u\toutput will be in UNIX format\n" \
165 "\t-d\toutput will be in DOS format\n\n" \
166 "- when no option is given then input format will be automaticaly detected\n" \
167 " and converted to the oposite format on output\n" \
168 "- when no file is given, then stdin is used as input and stdout as output"
160 169
161#define dpkg_trivial_usage \ 170#define dpkg_trivial_usage \
162 "[-i|-r|--unpack|--configure] my.deb" 171 "[-i|-r|--unpack|--configure] my.deb"
@@ -182,13 +191,12 @@ USAGE_HUMAN_READABLE( \
182 "Options:\n" \ 191 "Options:\n" \
183 "\t-l\tcount sizes many times if hard linked\n" \ 192 "\t-l\tcount sizes many times if hard linked\n" \
184 "\t-s\tdisplay only a total for each argument" \ 193 "\t-s\tdisplay only a total for each argument" \
185USAGE_HUMAN_READABLE( \ 194 USAGE_HUMAN_READABLE( \
186 "\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \ 195 "\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \
187 "\t-m\tprint sizes in megabytes\n" \ 196 "\t-m\tprint sizes in megabytes\n" \
188 "\t-k\tprint sizes in kilobytes(default)" \ 197 "\t-k\tprint sizes in kilobytes(default)" \
189 , \ 198 , \
190 "\n\t-k\tprint sizes in kilobytes(compatability)" \ 199 "\n\t-k\tprint sizes in kilobytes(compatability)")
191 )
192 200
193#define dumpkmap_trivial_usage \ 201#define dumpkmap_trivial_usage \
194 "> keymap" 202 "> keymap"
@@ -276,7 +284,7 @@ USAGE_HUMAN_READABLE( \
276 "\nEXPRESSION may consist of:\n" \ 284 "\nEXPRESSION may consist of:\n" \
277 "\t-follow\t\tDereference symbolic links.\n" \ 285 "\t-follow\t\tDereference symbolic links.\n" \
278 "\t-name PATTERN\tFile name (leading directories removed) matches PATTERN." \ 286 "\t-name PATTERN\tFile name (leading directories removed) matches PATTERN." \
279USAGE_FIND_TYPE( \ 287 USAGE_FIND_TYPE( \
280 "\n\t-type X\t\tFiletype matches X (where X is one of: f,d,l,b,c,...)" \ 288 "\n\t-type X\t\tFiletype matches X (where X is one of: f,d,l,b,c,...)" \
281) USAGE_FIND_PERM( \ 289) USAGE_FIND_PERM( \
282 "\n\t-perm PERMS\tPermissions match any of (+NNN); all of (-NNN);\n\t\t\tor exactly (NNN)" \ 290 "\n\t-perm PERMS\tPermissions match any of (+NNN); all of (-NNN);\n\t\t\tor exactly (NNN)" \
@@ -361,7 +369,8 @@ USAGE_FIND_TYPE( \
361 "Print first 10 lines of each FILE to standard output.\n" \ 369 "Print first 10 lines of each FILE to standard output.\n" \
362 "With more than one FILE, precede each with a header giving the\n" \ 370 "With more than one FILE, precede each with a header giving the\n" \
363 "file name. With no FILE, or when FILE is -, read standard input.\n\n" \ 371 "file name. With no FILE, or when FILE is -, read standard input.\n\n" \
364 "Options:\n" "\t-n NUM\t\tPrint first NUM lines instead of first 10" 372 "Options:\n" \
373 "\t-n NUM\t\tPrint first NUM lines instead of first 10"
365 374
366#define hostid_trivial_usage \ 375#define hostid_trivial_usage \
367 "" 376 ""
@@ -401,7 +410,7 @@ USAGE_FIND_TYPE( \
401 "Options:\n" \ 410 "Options:\n" \
402 "\t[[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" \ 411 "\t[[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" \
403 "\t[netmask <address>] [dstaddr <address>] [tunnel <adress>]\n" \ 412 "\t[netmask <address>] [dstaddr <address>] [tunnel <adress>]\n" \
404USAGE_SIOCSKEEPALIVE("\t[outfill <NN>] [keepalive <NN>]\n") \ 413 USAGE_SIOCSKEEPALIVE("\t[outfill <NN>] [keepalive <NN>]\n") \
405 "\t[hw ether <address>] [metric <NN>] [mtu <NN>]\n" \ 414 "\t[hw ether <address>] [metric <NN>] [mtu <NN>]\n" \
406 "\t[[-]trailers] [[-]arp] [[-]allmulti]\n" \ 415 "\t[[-]trailers] [[-]arp] [[-]allmulti]\n" \
407 "\t[multicast] [[-]promisc]\n" \ 416 "\t[multicast] [[-]promisc]\n" \
@@ -429,13 +438,15 @@ USAGE_SIOCSKEEPALIVE("\t[outfill <NN>] [keepalive <NN>]\n") \
429 "[-signal] process-id [process-id ...]" 438 "[-signal] process-id [process-id ...]"
430#define kill_full_usage \ 439#define kill_full_usage \
431 "Send a signal (default is SIGTERM) to the specified process(es).\n\n"\ 440 "Send a signal (default is SIGTERM) to the specified process(es).\n\n"\
432 "Options:\n" "\t-l\tList all signal names and numbers." 441 "Options:\n" \
442 "\t-l\tList all signal names and numbers."
433 443
434#define killall_trivial_usage \ 444#define killall_trivial_usage \
435 "[-signal] process-name [process-name ...]" 445 "[-signal] process-name [process-name ...]"
436#define killall_full_usage \ 446#define killall_full_usage \
437 "Send a signal (default is SIGTERM) to the specified process(es).\n\n"\ 447 "Send a signal (default is SIGTERM) to the specified process(es).\n\n"\
438 "Options:\n" "\t-l\tList all signal names and numbers." 448 "Options:\n" \
449 "\t-l\tList all signal names and numbers."
439 450
440#define length_trivial_usage \ 451#define length_trivial_usage \
441 "STRING" 452 "STRING"
@@ -513,14 +524,7 @@ USAGE_SIOCSKEEPALIVE("\t[outfill <NN>] [keepalive <NN>]\n") \
513 #define USAGE_AUTOWIDTH(a) 524 #define USAGE_AUTOWIDTH(a)
514#endif 525#endif
515#define ls_trivial_usage \ 526#define ls_trivial_usage \
516 "[-1Aa" USAGE_LS_TIMESTAMPS("c") \ 527 "[-1Aa" USAGE_LS_TIMESTAMPS("c") "Cd" USAGE_LS_TIMESTAMPS("e") USAGE_LS_FILETYPES("F") "iln" USAGE_LS_FILETYPES("p") USAGE_LS_FOLLOWLINKS("L") USAGE_LS_RECURSIVE("R") USAGE_LS_SORTFILES("rS") "s" USAGE_AUTOWIDTH("T") USAGE_LS_TIMESTAMPS("tu") USAGE_LS_SORTFILES("v") USAGE_AUTOWIDTH("w") "x" USAGE_LS_SORTFILES("X") USAGE_HUMAN_READABLE("h", "") "k] [filenames...]"
517 "Cd" USAGE_LS_TIMESTAMPS("e") USAGE_LS_FILETYPES("F") "iln" \
518 USAGE_LS_FILETYPES("p") USAGE_LS_FOLLOWLINKS("L") \
519 USAGE_LS_RECURSIVE("R") USAGE_LS_SORTFILES("rS") \
520 "s" USAGE_AUTOWIDTH("T") USAGE_LS_TIMESTAMPS("tu") \
521 USAGE_LS_SORTFILES("v") USAGE_AUTOWIDTH("w") "x" \
522 USAGE_LS_SORTFILES("X") USAGE_HUMAN_READABLE("h", "") \
523 "k] [filenames...]"
524#define ls_full_usage \ 528#define ls_full_usage \
525 "List directory contents\n\n" \ 529 "List directory contents\n\n" \
526 "Options:\n" \ 530 "Options:\n" \
@@ -528,59 +532,30 @@ USAGE_SIOCSKEEPALIVE("\t[outfill <NN>] [keepalive <NN>]\n") \
528 "\t-A\tdo not list implied . and ..\n" \ 532 "\t-A\tdo not list implied . and ..\n" \
529 "\t-a\tdo not hide entries starting with .\n" \ 533 "\t-a\tdo not hide entries starting with .\n" \
530 "\t-C\tlist entries by columns\n" \ 534 "\t-C\tlist entries by columns\n" \
531USAGE_LS_TIMESTAMPS( \ 535 USAGE_LS_TIMESTAMPS("\t-c\twith -l: show ctime\n") \
532 "\t-c\twith -l: show ctime (the time of last\n" \
533 "\t\tmodification of file status information)\n" \
534 ) \
535 "\t-d\tlist directory entries instead of contents\n" \ 536 "\t-d\tlist directory entries instead of contents\n" \
536USAGE_LS_TIMESTAMPS( \ 537 USAGE_LS_TIMESTAMPS("\t-e\tlist both full date and full time\n") \
537 "\t-e\tlist both full date and full time\n" \ 538 USAGE_LS_FILETYPES("\t-F\tappend indicator (one of */=@|) to entries\n") \
538 ) \
539USAGE_LS_FILETYPES( \
540 "\t-F\tappend indicator (one of */=@|) to entries\n" \
541 ) \
542 "\t-i\tlist the i-node for each file\n" \ 539 "\t-i\tlist the i-node for each file\n" \
543 "\t-l\tuse a long listing format\n" \ 540 "\t-l\tuse a long listing format\n" \
544 "\t-n\tlist numeric UIDs and GIDs instead of names\n" \ 541 "\t-n\tlist numeric UIDs and GIDs instead of names\n" \
545USAGE_LS_FILETYPES( \ 542 USAGE_LS_FILETYPES("\t-p\tappend indicator (one of /=@|) to entries\n") \
546 "\t-p\tappend indicator (one of /=@|) to entries\n" \ 543 USAGE_LS_FOLLOWLINKS("\t-L\tlist entries pointed to by symbolic links\n") \
547 ) \ 544 USAGE_LS_RECURSIVE("\t-R\tlist subdirectories recursively\n") \
548USAGE_LS_FOLLOWLINKS( \ 545 USAGE_LS_SORTFILES("\t-r\tsort the listing in reverse order\n") \
549 "\t-L\tlist entries pointed to by symbolic links\n" \ 546 USAGE_LS_SORTFILES("\t-S\tsort the listing by file size\n") \
550 ) \
551USAGE_LS_RECURSIVE( \
552 "\t-R\tlist subdirectories recursively\n" \
553 ) \
554USAGE_LS_SORTFILES( \
555 "\t-r\tsort the listing in reverse order\n" \
556 "\t-S\tsort the listing by file size\n" \
557 ) \
558 "\t-s\tlist the size of each file, in blocks\n" \ 547 "\t-s\tlist the size of each file, in blocks\n" \
559USAGE_AUTOWIDTH( \ 548 USAGE_AUTOWIDTH("\t-T NUM\tassume Tabstop every NUM columns\n") \
560 "\t-T NUM\tassume Tabstop every NUM columns\n" \ 549 USAGE_LS_TIMESTAMPS("\t-t\twith -l: show modification time\n") \
561 ) \ 550 USAGE_LS_TIMESTAMPS("\t-u\twith -l: show access time\n") \
562USAGE_LS_TIMESTAMPS( \ 551 USAGE_LS_SORTFILES("\t-v\tsort the listing by version\n") \
563 "\t-t\twith -l: show modification time (the time of last\n" \ 552 USAGE_AUTOWIDTH("\t-w NUM\tassume the terminal is NUM columns wide\n") \
564 "\t\tchange of the file)\n" \
565 "\t-u\twith -l: show access time (the time of last\n" \
566 "\t\taccess of the file)\n" \
567 ) \
568USAGE_LS_SORTFILES( \
569 "\t-v\tsort the listing by version\n" \
570 ) \
571USAGE_AUTOWIDTH( \
572 "\t-w NUM\tassume the terminal is NUM columns wide\n" \
573 ) \
574 "\t-x\tlist entries by lines instead of by columns\n" \ 553 "\t-x\tlist entries by lines instead of by columns\n" \
575USAGE_LS_SORTFILES( \ 554 USAGE_LS_SORTFILES("\t-X\tsort the listing by extension\n") \
576 "\t-X\tsort the listing by extension\n" \ 555 USAGE_HUMAN_READABLE( \
577 ) \
578USAGE_HUMAN_READABLE( \
579 "\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \ 556 "\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \
580 "\t-k\tprint sizes in kilobytes(default)" \ 557 "\t-k\tprint sizes in kilobytes(default)" , \
581 , \ 558 "\t-k\tprint sizes in kilobytes(compatability)")
582 "\t-k\tprint sizes in kilobytes(compatability)" \
583 ) \
584 559
585#define lsmod_trivial_usage \ 560#define lsmod_trivial_usage \
586 "" 561 ""
@@ -603,7 +578,8 @@ USAGE_HUMAN_READABLE( \
603 "\tmakedevs /dev/hda b 3 0 0 8 s -> hda,hda1-hda8" 578 "\tmakedevs /dev/hda b 3 0 0 8 s -> hda,hda1-hda8"
604 579
605#define md5sum_trivial_usage \ 580#define md5sum_trivial_usage \
606 "[OPTION] [FILE]...\nor: md5sum [OPTION] -c [FILE]" 581 "[OPTION] [FILE]...\n" \
582 "or: md5sum [OPTION] -c [FILE]"
607#define md5sum_full_usage \ 583#define md5sum_full_usage \
608 "Print or check MD5 checksums.\n\n" \ 584 "Print or check MD5 checksums.\n\n" \
609 "Options:\n" \ 585 "Options:\n" \
@@ -657,7 +633,8 @@ USAGE_HUMAN_READABLE( \
657 "[-c] [-v0|-v1] device [block-count]" 633 "[-c] [-v0|-v1] device [block-count]"
658#define mkswap_full_usage \ 634#define mkswap_full_usage \
659 "Prepare a disk partition to be used as a swap partition.\n\n" \ 635 "Prepare a disk partition to be used as a swap partition.\n\n" \
660 "Options:\n" "\t-c\t\tCheck for read-ability.\n" \ 636 "Options:\n" \
637 "\t-c\t\tCheck for read-ability.\n" \
661 "\t-v0\t\tMake version 0 swap [max 128 Megs].\n" \ 638 "\t-v0\t\tMake version 0 swap [max 128 Megs].\n" \
662 "\t-v1\t\tMake version 1 swap [big!] (default for kernels > 2.1.117).\n" \ 639 "\t-v1\t\tMake version 1 swap [big!] (default for kernels > 2.1.117).\n" \
663 "\tblock-count\tNumber of block to use (default is entire partition)." 640 "\tblock-count\tNumber of block to use (default is entire partition)."
@@ -689,7 +666,7 @@ USAGE_HUMAN_READABLE( \
689 "Mount a filesystem\n\n" \ 666 "Mount a filesystem\n\n" \
690 "Flags:\n" \ 667 "Flags:\n" \
691 "\t-a:\t\tMount all filesystems in fstab.\n" \ 668 "\t-a:\t\tMount all filesystems in fstab.\n" \
692USAGE_MTAB( \ 669 USAGE_MTAB( \
693 "\t-f:\t\t\"Fake\" mount. Add entry to mount table but don't mount it.\n" \ 670 "\t-f:\t\t\"Fake\" mount. Add entry to mount table but don't mount it.\n" \
694 "\t-n:\t\tDon't write a mount table entry.\n" \ 671 "\t-n:\t\tDon't write a mount table entry.\n" \
695 ) \ 672 ) \
@@ -703,7 +680,7 @@ USAGE_MTAB( \
703 "\tatime/noatime:\tEnable / disable updates to inode access times.\n" \ 680 "\tatime/noatime:\tEnable / disable updates to inode access times.\n" \
704 "\tdev/nodev:\tAllow use of special device files / disallow them.\n" \ 681 "\tdev/nodev:\tAllow use of special device files / disallow them.\n" \
705 "\texec/noexec:\tAllow use of executable files / disallow them.\n" \ 682 "\texec/noexec:\tAllow use of executable files / disallow them.\n" \
706USAGE_MOUNT_LOOP( \ 683 USAGE_MOUNT_LOOP( \
707 "\tloop:\t\tMounts a file via loop device.\n" \ 684 "\tloop:\t\tMounts a file via loop device.\n" \
708 ) \ 685 ) \
709 "\tsuid/nosuid:\tAllow set-user-id-root programs / disallow them.\n" \ 686 "\tsuid/nosuid:\tAllow set-user-id-root programs / disallow them.\n" \
@@ -723,7 +700,8 @@ USAGE_MOUNT_LOOP( \
723 "setpart tell unload unlock weof wset" 700 "setpart tell unload unlock weof wset"
724 701
725#define mv_trivial_usage \ 702#define mv_trivial_usage \
726 "SOURCE DEST\n or: mv SOURCE... DIRECTORY" 703 "SOURCE DEST\n" \
704 "or: mv SOURCE... DIRECTORY"
727#define mv_full_usage \ 705#define mv_full_usage \
728 "Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY." 706 "Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY."
729 707
@@ -862,7 +840,8 @@ USAGE_MOUNT_LOOP( \
862 "and KEYCODE is given in decimal" 840 "and KEYCODE is given in decimal"
863 841
864#define sh_trivial_usage \ 842#define sh_trivial_usage \
865 "[FILE]...\n or: sh -c command [args]..." 843 "[FILE]...\n" \
844 "or: sh -c command [args]..."
866#define sh_full_usage \ 845#define sh_full_usage \
867 "lash: The BusyBox command interpreter (shell)." 846 "lash: The BusyBox command interpreter (shell)."
868 847
@@ -930,9 +909,9 @@ USAGE_MOUNT_LOOP( \
930 "Options:\n" \ 909 "Options:\n" \
931 "\t-m NUM\t\tInterval between MARK lines (default=20min, 0=off)\n" \ 910 "\t-m NUM\t\tInterval between MARK lines (default=20min, 0=off)\n" \
932 "\t-n\t\tRun as a foreground process\n" \ 911 "\t-n\t\tRun as a foreground process\n" \
933USAGE_KLOGD("\t-K\t\tDo not start up the klogd process\n") \ 912 USAGE_KLOGD("\t-K\t\tDo not start up the klogd process\n") \
934 "\t-O FILE\t\tUse an alternate log file (default=/var/log/messages)" \ 913 "\t-O FILE\t\tUse an alternate log file (default=/var/log/messages)" \
935USAGE_REMOTE_LOG( \ 914 USAGE_REMOTE_LOG( \
936 "\n\t-R HOST[:PORT]\t\tLog remotely to IP or hostname on PORT (default PORT=514/UDP)\n" \ 915 "\n\t-R HOST[:PORT]\t\tLog remotely to IP or hostname on PORT (default PORT=514/UDP)\n" \
937 "\t-L\t\tLog locally as well as network logging (default is network only)") 916 "\t-L\t\tLog locally as well as network logging (default is network only)")
938 917
@@ -949,10 +928,10 @@ USAGE_REMOTE_LOG( \
949 "With more than one FILE, precede each with a header giving the\n" \ 928 "With more than one FILE, precede each with a header giving the\n" \
950 "file name. With no FILE, or when FILE is -, read standard input.\n\n" \ 929 "file name. With no FILE, or when FILE is -, read standard input.\n\n" \
951 "Options:\n" \ 930 "Options:\n" \
952USAGE_UNSIMPLE_TAIL("\t-c N[kbm]\toutput the last N bytes\n") \ 931 USAGE_UNSIMPLE_TAIL("\t-c N[kbm]\toutput the last N bytes\n") \
953 "\t-n N[kbm]\tprint last N lines instead of last 10\n" \ 932 "\t-n N[kbm]\tprint last N lines instead of last 10\n" \
954 "\t-f\t\toutput data as the file grows" \ 933 "\t-f\t\toutput data as the file grows" \
955USAGE_UNSIMPLE_TAIL( \ 934 USAGE_UNSIMPLE_TAIL( \
956 "\n\t-q\t\tnever output headers giving file names\n" \ 935 "\n\t-q\t\tnever output headers giving file names\n" \
957 "\t-s SEC\t\twait SEC seconds between reads with -f\n" \ 936 "\t-s SEC\t\twait SEC seconds between reads with -f\n" \
958 "\t-v\t\talways output headers giving file names\n\n" \ 937 "\t-v\t\talways output headers giving file names\n\n" \
@@ -978,13 +957,13 @@ USAGE_UNSIMPLE_TAIL( \
978#define tar_full_usage \ 957#define tar_full_usage \
979 "Create, extract, or list files from a tar file.\n\n" \ 958 "Create, extract, or list files from a tar file.\n\n" \
980 "Main operation mode:\n" \ 959 "Main operation mode:\n" \
981USAGE_TAR_CREATE("\tc\t\tcreate\n") \ 960 USAGE_TAR_CREATE("\tc\t\tcreate\n") \
982 "\tx\t\textract\n" \ 961 "\tx\t\textract\n" \
983 "\tt\t\tlist\n" \ 962 "\tt\t\tlist\n" \
984 "\nFile selection:\n" \ 963 "\nFile selection:\n" \
985 "\tf\t\tname of tarfile or \"-\" for stdin\n" \ 964 "\tf\t\tname of tarfile or \"-\" for stdin\n" \
986 "\tO\t\textract to stdout\n" \ 965 "\tO\t\textract to stdout\n" \
987USAGE_TAR_EXCLUDE( \ 966 USAGE_TAR_EXCLUDE( \
988 "\texclude\t\tfile to exclude\n" \ 967 "\texclude\t\tfile to exclude\n" \
989 "\tX\t\tfile with names to exclude\n" \ 968 "\tX\t\tfile with names to exclude\n" \
990 ) \ 969 ) \
@@ -995,7 +974,8 @@ USAGE_TAR_EXCLUDE( \
995 "[OPTION]... [FILE]..." 974 "[OPTION]... [FILE]..."
996#define tee_full_usage \ 975#define tee_full_usage \
997 "Copy standard input to each FILE, and also to standard output.\n\n" \ 976 "Copy standard input to each FILE, and also to standard output.\n\n" \
998 "Options:\n" "\t-a\tappend to the given FILEs, do not overwrite" 977 "Options:\n" \
978 "\t-a\tappend to the given FILEs, do not overwrite"
999 979
1000#define telnet_trivial_usage \ 980#define telnet_trivial_usage \
1001 "host [port]" 981 "host [port]"
@@ -1048,11 +1028,10 @@ USAGE_TAR_EXCLUDE( \
1048#define umount_full_usage \ 1028#define umount_full_usage \
1049 "Unmount file systems\n" \ 1029 "Unmount file systems\n" \
1050 "\nFlags:\n" "\t-a:\tUnmount all file systems" \ 1030 "\nFlags:\n" "\t-a:\tUnmount all file systems" \
1051USAGE_MTAB(" in /etc/mtab\n\t-n:\tDon't erase /etc/mtab entries") \ 1031 USAGE_MTAB(" in /etc/mtab\n\t-n:\tDon't erase /etc/mtab entries") \
1052 "\n\t-r:\tTry to remount devices as read-only if mount is busy" \ 1032 "\n\t-r:\tTry to remount devices as read-only if mount is busy" \
1053USAGE_MOUNT_FORCE("\n\t-f:\tForce filesystem umount (i.e. unreachable NFS server)") \ 1033 USAGE_MOUNT_FORCE("\n\t-f:\tForce filesystem umount (i.e. unreachable NFS server)") \
1054USAGE_MOUNT_LOOP("\n\t-l:\tDo not free loop device (if a loop device has been used)" \ 1034 USAGE_MOUNT_LOOP("\n\t-l:\tDo not free loop device (if a loop device has been used)")
1055 )
1056 1035
1057#define uname_trivial_usage \ 1036#define uname_trivial_usage \
1058 "[OPTION]..." 1037 "[OPTION]..."
@@ -1078,9 +1057,9 @@ USAGE_MOUNT_LOOP("\n\t-l:\tDo not free loop device (if a loop device has been us
1078 "\t-u\tonly print unique lines" 1057 "\t-u\tonly print unique lines"
1079 1058
1080#define unix2dos_trivial_usage \ 1059#define unix2dos_trivial_usage \
1081 "< unixfile > dosfile" 1060 "[option] [file]"
1082#define unix2dos_full_usage \ 1061#define unix2dos_full_usage \
1083 "Converts a text file from unix format to dos format." 1062 "See 'dos2unix --help' for help!"
1084 1063
1085#define update_trivial_usage \ 1064#define update_trivial_usage \
1086 "[options]" 1065 "[options]"
diff --git a/usage.h b/usage.h
index b39fec924..a7cb9a6be 100644
--- a/usage.h
+++ b/usage.h
@@ -25,20 +25,23 @@
25 "[OPTION]... GROUP FILE..." 25 "[OPTION]... GROUP FILE..."
26#define chgrp_full_usage \ 26#define chgrp_full_usage \
27 "Change the group membership of each FILE to GROUP.\n" \ 27 "Change the group membership of each FILE to GROUP.\n" \
28 "\nOptions:\n\t-R\tChanges files and directories recursively." 28 "\nOptions:\n" \
29 "\t-R\tChanges files and directories recursively."
29 30
30#define chmod_trivial_usage \ 31#define chmod_trivial_usage \
31 "[-R] MODE[,MODE]... FILE..." 32 "[-R] MODE[,MODE]... FILE..."
32#define chmod_full_usage \ 33#define chmod_full_usage \
33 "Each MODE is one or more of the letters ugoa, one of the symbols +-= and\n" \ 34 "Each MODE is one or more of the letters ugoa, one of the\n" \
34 "one or more of the letters rwxst.\n\n" \ 35 "symbols +-= and one or more of the letters rwxst.\n\n" \
35 "Options:\n\t-R\tChanges files and directories recursively." 36 "Options:\n" \
37 "\t-R\tChanges files and directories recursively."
36 38
37#define chown_trivial_usage \ 39#define chown_trivial_usage \
38 "[OPTION]... OWNER[<.|:>[GROUP] FILE..." 40 "[OPTION]... OWNER[<.|:>[GROUP] FILE..."
39#define chown_full_usage \ 41#define chown_full_usage \
40 "Change the owner and/or group of each FILE to OWNER and/or GROUP.\n" \ 42 "Change the owner and/or group of each FILE to OWNER and/or GROUP.\n" \
41 "\nOptions:\n\t-R\tChanges files and directories recursively." 43 "\nOptions:\n" \
44 "\t-R\tChanges files and directories recursively."
42 45
43#define chroot_trivial_usage \ 46#define chroot_trivial_usage \
44 "NEWROOT [COMMAND...]" 47 "NEWROOT [COMMAND...]"
@@ -87,7 +90,8 @@
87 "[OPTION]... [+FORMAT]\n" 90 "[OPTION]... [+FORMAT]\n"
88#define date_full_usage \ 91#define date_full_usage \
89 "Displays the current time in the given FORMAT, or sets the system date.\n" \ 92 "Displays the current time in the given FORMAT, or sets the system date.\n" \
90 "\nOptions:\n\t-R\t\tOutputs RFC-822 compliant date string\n" \ 93 "\nOptions:\n" \
94 \t-R\t\tOutputs RFC-822 compliant date string\n" \
91 "\t-d STRING\tdisplay time described by STRING, not `now'\n" \ 95 "\t-d STRING\tdisplay time described by STRING, not `now'\n" \
92 "\t-s\t\tSets time described by STRING\n" \ 96 "\t-s\t\tSets time described by STRING\n" \
93 "\t-u\t\tPrints or sets Coordinated Universal Time" 97 "\t-u\t\tPrints or sets Coordinated Universal Time"
@@ -100,7 +104,8 @@
100 "i.e. 'dc 2 2 add' -> 4, and 'dc 8 8 \\* 2 2 + /' -> 16" 104 "i.e. 'dc 2 2 add' -> 4, and 'dc 8 8 \\* 2 2 + /' -> 16"
101 105
102#define dd_trivial_usage \ 106#define dd_trivial_usage \
103 "[if=FILE] [of=FILE] [bs=N] [count=N] [skip=N] [seek=N] [conv=notrunc|sync]" 107 "[if=FILE] [of=FILE] [bs=N] [count=N] [skip=N]\n" \
108 "[seek=N] [conv=notrunc|sync]"
104#define dd_full_usage \ 109#define dd_full_usage \
105 "Copy a file, converting and formatting according to options\n\n" \ 110 "Copy a file, converting and formatting according to options\n\n" \
106 "\tif=FILE\tread from FILE instead of stdin\n" \ 111 "\tif=FILE\tread from FILE instead of stdin\n" \
@@ -127,13 +132,11 @@
127 #define USAGE_HUMAN_READABLE(a,b) b 132 #define USAGE_HUMAN_READABLE(a,b) b
128#endif 133#endif
129#define df_trivial_usage \ 134#define df_trivial_usage \
130 "[-" \ 135 "[-" USAGE_HUMAN_READABLE("hm", "") "k] [filesystem ...]"
131 USAGE_HUMAN_READABLE("hm", "") \
132 "k] [filesystem ...]\n"
133#define df_full_usage \ 136#define df_full_usage \
134 "Print the filesystem space used and space available.\n\n" \ 137 "Print the filesystem space used and space available.\n\n" \
135 "Options:\n" \ 138 "Options:\n" \
136USAGE_HUMAN_READABLE( \ 139 USAGE_HUMAN_READABLE( \
137 "\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \ 140 "\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \
138 "\t-m\tprint sizes in megabytes\n" \ 141 "\t-m\tprint sizes in megabytes\n" \
139 "\t-k\tprint sizes in kilobytes(default)", \ 142 "\t-k\tprint sizes in kilobytes(default)", \
@@ -154,9 +157,15 @@ USAGE_HUMAN_READABLE( \
154 "\t-s SIZE\t\tUse a buffer of size SIZE" 157 "\t-s SIZE\t\tUse a buffer of size SIZE"
155 158
156#define dos2unix_trivial_usage \ 159#define dos2unix_trivial_usage \
157 "< dosfile > unixfile" 160 "[option] [file]"
158#define dos2unix_full_usage \ 161#define dos2unix_full_usage \
159 "Converts a text file from dos format to unix format." 162 "Converts a text file to/from dos format to unix format.\n\n" \
163 "Options:\n" \
164 "\t-u\toutput will be in UNIX format\n" \
165 "\t-d\toutput will be in DOS format\n\n" \
166 "- when no option is given then input format will be automaticaly detected\n" \
167 " and converted to the oposite format on output\n" \
168 "- when no file is given, then stdin is used as input and stdout as output"
160 169
161#define dpkg_trivial_usage \ 170#define dpkg_trivial_usage \
162 "[-i|-r|--unpack|--configure] my.deb" 171 "[-i|-r|--unpack|--configure] my.deb"
@@ -182,13 +191,12 @@ USAGE_HUMAN_READABLE( \
182 "Options:\n" \ 191 "Options:\n" \
183 "\t-l\tcount sizes many times if hard linked\n" \ 192 "\t-l\tcount sizes many times if hard linked\n" \
184 "\t-s\tdisplay only a total for each argument" \ 193 "\t-s\tdisplay only a total for each argument" \
185USAGE_HUMAN_READABLE( \ 194 USAGE_HUMAN_READABLE( \
186 "\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \ 195 "\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \
187 "\t-m\tprint sizes in megabytes\n" \ 196 "\t-m\tprint sizes in megabytes\n" \
188 "\t-k\tprint sizes in kilobytes(default)" \ 197 "\t-k\tprint sizes in kilobytes(default)" \
189 , \ 198 , \
190 "\n\t-k\tprint sizes in kilobytes(compatability)" \ 199 "\n\t-k\tprint sizes in kilobytes(compatability)")
191 )
192 200
193#define dumpkmap_trivial_usage \ 201#define dumpkmap_trivial_usage \
194 "> keymap" 202 "> keymap"
@@ -276,7 +284,7 @@ USAGE_HUMAN_READABLE( \
276 "\nEXPRESSION may consist of:\n" \ 284 "\nEXPRESSION may consist of:\n" \
277 "\t-follow\t\tDereference symbolic links.\n" \ 285 "\t-follow\t\tDereference symbolic links.\n" \
278 "\t-name PATTERN\tFile name (leading directories removed) matches PATTERN." \ 286 "\t-name PATTERN\tFile name (leading directories removed) matches PATTERN." \
279USAGE_FIND_TYPE( \ 287 USAGE_FIND_TYPE( \
280 "\n\t-type X\t\tFiletype matches X (where X is one of: f,d,l,b,c,...)" \ 288 "\n\t-type X\t\tFiletype matches X (where X is one of: f,d,l,b,c,...)" \
281) USAGE_FIND_PERM( \ 289) USAGE_FIND_PERM( \
282 "\n\t-perm PERMS\tPermissions match any of (+NNN); all of (-NNN);\n\t\t\tor exactly (NNN)" \ 290 "\n\t-perm PERMS\tPermissions match any of (+NNN); all of (-NNN);\n\t\t\tor exactly (NNN)" \
@@ -361,7 +369,8 @@ USAGE_FIND_TYPE( \
361 "Print first 10 lines of each FILE to standard output.\n" \ 369 "Print first 10 lines of each FILE to standard output.\n" \
362 "With more than one FILE, precede each with a header giving the\n" \ 370 "With more than one FILE, precede each with a header giving the\n" \
363 "file name. With no FILE, or when FILE is -, read standard input.\n\n" \ 371 "file name. With no FILE, or when FILE is -, read standard input.\n\n" \
364 "Options:\n" "\t-n NUM\t\tPrint first NUM lines instead of first 10" 372 "Options:\n" \
373 "\t-n NUM\t\tPrint first NUM lines instead of first 10"
365 374
366#define hostid_trivial_usage \ 375#define hostid_trivial_usage \
367 "" 376 ""
@@ -401,7 +410,7 @@ USAGE_FIND_TYPE( \
401 "Options:\n" \ 410 "Options:\n" \
402 "\t[[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" \ 411 "\t[[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n" \
403 "\t[netmask <address>] [dstaddr <address>] [tunnel <adress>]\n" \ 412 "\t[netmask <address>] [dstaddr <address>] [tunnel <adress>]\n" \
404USAGE_SIOCSKEEPALIVE("\t[outfill <NN>] [keepalive <NN>]\n") \ 413 USAGE_SIOCSKEEPALIVE("\t[outfill <NN>] [keepalive <NN>]\n") \
405 "\t[hw ether <address>] [metric <NN>] [mtu <NN>]\n" \ 414 "\t[hw ether <address>] [metric <NN>] [mtu <NN>]\n" \
406 "\t[[-]trailers] [[-]arp] [[-]allmulti]\n" \ 415 "\t[[-]trailers] [[-]arp] [[-]allmulti]\n" \
407 "\t[multicast] [[-]promisc]\n" \ 416 "\t[multicast] [[-]promisc]\n" \
@@ -429,13 +438,15 @@ USAGE_SIOCSKEEPALIVE("\t[outfill <NN>] [keepalive <NN>]\n") \
429 "[-signal] process-id [process-id ...]" 438 "[-signal] process-id [process-id ...]"
430#define kill_full_usage \ 439#define kill_full_usage \
431 "Send a signal (default is SIGTERM) to the specified process(es).\n\n"\ 440 "Send a signal (default is SIGTERM) to the specified process(es).\n\n"\
432 "Options:\n" "\t-l\tList all signal names and numbers." 441 "Options:\n" \
442 "\t-l\tList all signal names and numbers."
433 443
434#define killall_trivial_usage \ 444#define killall_trivial_usage \
435 "[-signal] process-name [process-name ...]" 445 "[-signal] process-name [process-name ...]"
436#define killall_full_usage \ 446#define killall_full_usage \
437 "Send a signal (default is SIGTERM) to the specified process(es).\n\n"\ 447 "Send a signal (default is SIGTERM) to the specified process(es).\n\n"\
438 "Options:\n" "\t-l\tList all signal names and numbers." 448 "Options:\n" \
449 "\t-l\tList all signal names and numbers."
439 450
440#define length_trivial_usage \ 451#define length_trivial_usage \
441 "STRING" 452 "STRING"
@@ -513,14 +524,7 @@ USAGE_SIOCSKEEPALIVE("\t[outfill <NN>] [keepalive <NN>]\n") \
513 #define USAGE_AUTOWIDTH(a) 524 #define USAGE_AUTOWIDTH(a)
514#endif 525#endif
515#define ls_trivial_usage \ 526#define ls_trivial_usage \
516 "[-1Aa" USAGE_LS_TIMESTAMPS("c") \ 527 "[-1Aa" USAGE_LS_TIMESTAMPS("c") "Cd" USAGE_LS_TIMESTAMPS("e") USAGE_LS_FILETYPES("F") "iln" USAGE_LS_FILETYPES("p") USAGE_LS_FOLLOWLINKS("L") USAGE_LS_RECURSIVE("R") USAGE_LS_SORTFILES("rS") "s" USAGE_AUTOWIDTH("T") USAGE_LS_TIMESTAMPS("tu") USAGE_LS_SORTFILES("v") USAGE_AUTOWIDTH("w") "x" USAGE_LS_SORTFILES("X") USAGE_HUMAN_READABLE("h", "") "k] [filenames...]"
517 "Cd" USAGE_LS_TIMESTAMPS("e") USAGE_LS_FILETYPES("F") "iln" \
518 USAGE_LS_FILETYPES("p") USAGE_LS_FOLLOWLINKS("L") \
519 USAGE_LS_RECURSIVE("R") USAGE_LS_SORTFILES("rS") \
520 "s" USAGE_AUTOWIDTH("T") USAGE_LS_TIMESTAMPS("tu") \
521 USAGE_LS_SORTFILES("v") USAGE_AUTOWIDTH("w") "x" \
522 USAGE_LS_SORTFILES("X") USAGE_HUMAN_READABLE("h", "") \
523 "k] [filenames...]"
524#define ls_full_usage \ 528#define ls_full_usage \
525 "List directory contents\n\n" \ 529 "List directory contents\n\n" \
526 "Options:\n" \ 530 "Options:\n" \
@@ -528,59 +532,30 @@ USAGE_SIOCSKEEPALIVE("\t[outfill <NN>] [keepalive <NN>]\n") \
528 "\t-A\tdo not list implied . and ..\n" \ 532 "\t-A\tdo not list implied . and ..\n" \
529 "\t-a\tdo not hide entries starting with .\n" \ 533 "\t-a\tdo not hide entries starting with .\n" \
530 "\t-C\tlist entries by columns\n" \ 534 "\t-C\tlist entries by columns\n" \
531USAGE_LS_TIMESTAMPS( \ 535 USAGE_LS_TIMESTAMPS("\t-c\twith -l: show ctime\n") \
532 "\t-c\twith -l: show ctime (the time of last\n" \
533 "\t\tmodification of file status information)\n" \
534 ) \
535 "\t-d\tlist directory entries instead of contents\n" \ 536 "\t-d\tlist directory entries instead of contents\n" \
536USAGE_LS_TIMESTAMPS( \ 537 USAGE_LS_TIMESTAMPS("\t-e\tlist both full date and full time\n") \
537 "\t-e\tlist both full date and full time\n" \ 538 USAGE_LS_FILETYPES("\t-F\tappend indicator (one of */=@|) to entries\n") \
538 ) \
539USAGE_LS_FILETYPES( \
540 "\t-F\tappend indicator (one of */=@|) to entries\n" \
541 ) \
542 "\t-i\tlist the i-node for each file\n" \ 539 "\t-i\tlist the i-node for each file\n" \
543 "\t-l\tuse a long listing format\n" \ 540 "\t-l\tuse a long listing format\n" \
544 "\t-n\tlist numeric UIDs and GIDs instead of names\n" \ 541 "\t-n\tlist numeric UIDs and GIDs instead of names\n" \
545USAGE_LS_FILETYPES( \ 542 USAGE_LS_FILETYPES("\t-p\tappend indicator (one of /=@|) to entries\n") \
546 "\t-p\tappend indicator (one of /=@|) to entries\n" \ 543 USAGE_LS_FOLLOWLINKS("\t-L\tlist entries pointed to by symbolic links\n") \
547 ) \ 544 USAGE_LS_RECURSIVE("\t-R\tlist subdirectories recursively\n") \
548USAGE_LS_FOLLOWLINKS( \ 545 USAGE_LS_SORTFILES("\t-r\tsort the listing in reverse order\n") \
549 "\t-L\tlist entries pointed to by symbolic links\n" \ 546 USAGE_LS_SORTFILES("\t-S\tsort the listing by file size\n") \
550 ) \
551USAGE_LS_RECURSIVE( \
552 "\t-R\tlist subdirectories recursively\n" \
553 ) \
554USAGE_LS_SORTFILES( \
555 "\t-r\tsort the listing in reverse order\n" \
556 "\t-S\tsort the listing by file size\n" \
557 ) \
558 "\t-s\tlist the size of each file, in blocks\n" \ 547 "\t-s\tlist the size of each file, in blocks\n" \
559USAGE_AUTOWIDTH( \ 548 USAGE_AUTOWIDTH("\t-T NUM\tassume Tabstop every NUM columns\n") \
560 "\t-T NUM\tassume Tabstop every NUM columns\n" \ 549 USAGE_LS_TIMESTAMPS("\t-t\twith -l: show modification time\n") \
561 ) \ 550 USAGE_LS_TIMESTAMPS("\t-u\twith -l: show access time\n") \
562USAGE_LS_TIMESTAMPS( \ 551 USAGE_LS_SORTFILES("\t-v\tsort the listing by version\n") \
563 "\t-t\twith -l: show modification time (the time of last\n" \ 552 USAGE_AUTOWIDTH("\t-w NUM\tassume the terminal is NUM columns wide\n") \
564 "\t\tchange of the file)\n" \
565 "\t-u\twith -l: show access time (the time of last\n" \
566 "\t\taccess of the file)\n" \
567 ) \
568USAGE_LS_SORTFILES( \
569 "\t-v\tsort the listing by version\n" \
570 ) \
571USAGE_AUTOWIDTH( \
572 "\t-w NUM\tassume the terminal is NUM columns wide\n" \
573 ) \
574 "\t-x\tlist entries by lines instead of by columns\n" \ 553 "\t-x\tlist entries by lines instead of by columns\n" \
575USAGE_LS_SORTFILES( \ 554 USAGE_LS_SORTFILES("\t-X\tsort the listing by extension\n") \
576 "\t-X\tsort the listing by extension\n" \ 555 USAGE_HUMAN_READABLE( \
577 ) \
578USAGE_HUMAN_READABLE( \
579 "\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \ 556 "\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \
580 "\t-k\tprint sizes in kilobytes(default)" \ 557 "\t-k\tprint sizes in kilobytes(default)" , \
581 , \ 558 "\t-k\tprint sizes in kilobytes(compatability)")
582 "\t-k\tprint sizes in kilobytes(compatability)" \
583 ) \
584 559
585#define lsmod_trivial_usage \ 560#define lsmod_trivial_usage \
586 "" 561 ""
@@ -603,7 +578,8 @@ USAGE_HUMAN_READABLE( \
603 "\tmakedevs /dev/hda b 3 0 0 8 s -> hda,hda1-hda8" 578 "\tmakedevs /dev/hda b 3 0 0 8 s -> hda,hda1-hda8"
604 579
605#define md5sum_trivial_usage \ 580#define md5sum_trivial_usage \
606 "[OPTION] [FILE]...\nor: md5sum [OPTION] -c [FILE]" 581 "[OPTION] [FILE]...\n" \
582 "or: md5sum [OPTION] -c [FILE]"
607#define md5sum_full_usage \ 583#define md5sum_full_usage \
608 "Print or check MD5 checksums.\n\n" \ 584 "Print or check MD5 checksums.\n\n" \
609 "Options:\n" \ 585 "Options:\n" \
@@ -657,7 +633,8 @@ USAGE_HUMAN_READABLE( \
657 "[-c] [-v0|-v1] device [block-count]" 633 "[-c] [-v0|-v1] device [block-count]"
658#define mkswap_full_usage \ 634#define mkswap_full_usage \
659 "Prepare a disk partition to be used as a swap partition.\n\n" \ 635 "Prepare a disk partition to be used as a swap partition.\n\n" \
660 "Options:\n" "\t-c\t\tCheck for read-ability.\n" \ 636 "Options:\n" \
637 "\t-c\t\tCheck for read-ability.\n" \
661 "\t-v0\t\tMake version 0 swap [max 128 Megs].\n" \ 638 "\t-v0\t\tMake version 0 swap [max 128 Megs].\n" \
662 "\t-v1\t\tMake version 1 swap [big!] (default for kernels > 2.1.117).\n" \ 639 "\t-v1\t\tMake version 1 swap [big!] (default for kernels > 2.1.117).\n" \
663 "\tblock-count\tNumber of block to use (default is entire partition)." 640 "\tblock-count\tNumber of block to use (default is entire partition)."
@@ -689,7 +666,7 @@ USAGE_HUMAN_READABLE( \
689 "Mount a filesystem\n\n" \ 666 "Mount a filesystem\n\n" \
690 "Flags:\n" \ 667 "Flags:\n" \
691 "\t-a:\t\tMount all filesystems in fstab.\n" \ 668 "\t-a:\t\tMount all filesystems in fstab.\n" \
692USAGE_MTAB( \ 669 USAGE_MTAB( \
693 "\t-f:\t\t\"Fake\" mount. Add entry to mount table but don't mount it.\n" \ 670 "\t-f:\t\t\"Fake\" mount. Add entry to mount table but don't mount it.\n" \
694 "\t-n:\t\tDon't write a mount table entry.\n" \ 671 "\t-n:\t\tDon't write a mount table entry.\n" \
695 ) \ 672 ) \
@@ -703,7 +680,7 @@ USAGE_MTAB( \
703 "\tatime/noatime:\tEnable / disable updates to inode access times.\n" \ 680 "\tatime/noatime:\tEnable / disable updates to inode access times.\n" \
704 "\tdev/nodev:\tAllow use of special device files / disallow them.\n" \ 681 "\tdev/nodev:\tAllow use of special device files / disallow them.\n" \
705 "\texec/noexec:\tAllow use of executable files / disallow them.\n" \ 682 "\texec/noexec:\tAllow use of executable files / disallow them.\n" \
706USAGE_MOUNT_LOOP( \ 683 USAGE_MOUNT_LOOP( \
707 "\tloop:\t\tMounts a file via loop device.\n" \ 684 "\tloop:\t\tMounts a file via loop device.\n" \
708 ) \ 685 ) \
709 "\tsuid/nosuid:\tAllow set-user-id-root programs / disallow them.\n" \ 686 "\tsuid/nosuid:\tAllow set-user-id-root programs / disallow them.\n" \
@@ -723,7 +700,8 @@ USAGE_MOUNT_LOOP( \
723 "setpart tell unload unlock weof wset" 700 "setpart tell unload unlock weof wset"
724 701
725#define mv_trivial_usage \ 702#define mv_trivial_usage \
726 "SOURCE DEST\n or: mv SOURCE... DIRECTORY" 703 "SOURCE DEST\n" \
704 "or: mv SOURCE... DIRECTORY"
727#define mv_full_usage \ 705#define mv_full_usage \
728 "Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY." 706 "Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY."
729 707
@@ -862,7 +840,8 @@ USAGE_MOUNT_LOOP( \
862 "and KEYCODE is given in decimal" 840 "and KEYCODE is given in decimal"
863 841
864#define sh_trivial_usage \ 842#define sh_trivial_usage \
865 "[FILE]...\n or: sh -c command [args]..." 843 "[FILE]...\n" \
844 "or: sh -c command [args]..."
866#define sh_full_usage \ 845#define sh_full_usage \
867 "lash: The BusyBox command interpreter (shell)." 846 "lash: The BusyBox command interpreter (shell)."
868 847
@@ -930,9 +909,9 @@ USAGE_MOUNT_LOOP( \
930 "Options:\n" \ 909 "Options:\n" \
931 "\t-m NUM\t\tInterval between MARK lines (default=20min, 0=off)\n" \ 910 "\t-m NUM\t\tInterval between MARK lines (default=20min, 0=off)\n" \
932 "\t-n\t\tRun as a foreground process\n" \ 911 "\t-n\t\tRun as a foreground process\n" \
933USAGE_KLOGD("\t-K\t\tDo not start up the klogd process\n") \ 912 USAGE_KLOGD("\t-K\t\tDo not start up the klogd process\n") \
934 "\t-O FILE\t\tUse an alternate log file (default=/var/log/messages)" \ 913 "\t-O FILE\t\tUse an alternate log file (default=/var/log/messages)" \
935USAGE_REMOTE_LOG( \ 914 USAGE_REMOTE_LOG( \
936 "\n\t-R HOST[:PORT]\t\tLog remotely to IP or hostname on PORT (default PORT=514/UDP)\n" \ 915 "\n\t-R HOST[:PORT]\t\tLog remotely to IP or hostname on PORT (default PORT=514/UDP)\n" \
937 "\t-L\t\tLog locally as well as network logging (default is network only)") 916 "\t-L\t\tLog locally as well as network logging (default is network only)")
938 917
@@ -949,10 +928,10 @@ USAGE_REMOTE_LOG( \
949 "With more than one FILE, precede each with a header giving the\n" \ 928 "With more than one FILE, precede each with a header giving the\n" \
950 "file name. With no FILE, or when FILE is -, read standard input.\n\n" \ 929 "file name. With no FILE, or when FILE is -, read standard input.\n\n" \
951 "Options:\n" \ 930 "Options:\n" \
952USAGE_UNSIMPLE_TAIL("\t-c N[kbm]\toutput the last N bytes\n") \ 931 USAGE_UNSIMPLE_TAIL("\t-c N[kbm]\toutput the last N bytes\n") \
953 "\t-n N[kbm]\tprint last N lines instead of last 10\n" \ 932 "\t-n N[kbm]\tprint last N lines instead of last 10\n" \
954 "\t-f\t\toutput data as the file grows" \ 933 "\t-f\t\toutput data as the file grows" \
955USAGE_UNSIMPLE_TAIL( \ 934 USAGE_UNSIMPLE_TAIL( \
956 "\n\t-q\t\tnever output headers giving file names\n" \ 935 "\n\t-q\t\tnever output headers giving file names\n" \
957 "\t-s SEC\t\twait SEC seconds between reads with -f\n" \ 936 "\t-s SEC\t\twait SEC seconds between reads with -f\n" \
958 "\t-v\t\talways output headers giving file names\n\n" \ 937 "\t-v\t\talways output headers giving file names\n\n" \
@@ -978,13 +957,13 @@ USAGE_UNSIMPLE_TAIL( \
978#define tar_full_usage \ 957#define tar_full_usage \
979 "Create, extract, or list files from a tar file.\n\n" \ 958 "Create, extract, or list files from a tar file.\n\n" \
980 "Main operation mode:\n" \ 959 "Main operation mode:\n" \
981USAGE_TAR_CREATE("\tc\t\tcreate\n") \ 960 USAGE_TAR_CREATE("\tc\t\tcreate\n") \
982 "\tx\t\textract\n" \ 961 "\tx\t\textract\n" \
983 "\tt\t\tlist\n" \ 962 "\tt\t\tlist\n" \
984 "\nFile selection:\n" \ 963 "\nFile selection:\n" \
985 "\tf\t\tname of tarfile or \"-\" for stdin\n" \ 964 "\tf\t\tname of tarfile or \"-\" for stdin\n" \
986 "\tO\t\textract to stdout\n" \ 965 "\tO\t\textract to stdout\n" \
987USAGE_TAR_EXCLUDE( \ 966 USAGE_TAR_EXCLUDE( \
988 "\texclude\t\tfile to exclude\n" \ 967 "\texclude\t\tfile to exclude\n" \
989 "\tX\t\tfile with names to exclude\n" \ 968 "\tX\t\tfile with names to exclude\n" \
990 ) \ 969 ) \
@@ -995,7 +974,8 @@ USAGE_TAR_EXCLUDE( \
995 "[OPTION]... [FILE]..." 974 "[OPTION]... [FILE]..."
996#define tee_full_usage \ 975#define tee_full_usage \
997 "Copy standard input to each FILE, and also to standard output.\n\n" \ 976 "Copy standard input to each FILE, and also to standard output.\n\n" \
998 "Options:\n" "\t-a\tappend to the given FILEs, do not overwrite" 977 "Options:\n" \
978 "\t-a\tappend to the given FILEs, do not overwrite"
999 979
1000#define telnet_trivial_usage \ 980#define telnet_trivial_usage \
1001 "host [port]" 981 "host [port]"
@@ -1048,11 +1028,10 @@ USAGE_TAR_EXCLUDE( \
1048#define umount_full_usage \ 1028#define umount_full_usage \
1049 "Unmount file systems\n" \ 1029 "Unmount file systems\n" \
1050 "\nFlags:\n" "\t-a:\tUnmount all file systems" \ 1030 "\nFlags:\n" "\t-a:\tUnmount all file systems" \
1051USAGE_MTAB(" in /etc/mtab\n\t-n:\tDon't erase /etc/mtab entries") \ 1031 USAGE_MTAB(" in /etc/mtab\n\t-n:\tDon't erase /etc/mtab entries") \
1052 "\n\t-r:\tTry to remount devices as read-only if mount is busy" \ 1032 "\n\t-r:\tTry to remount devices as read-only if mount is busy" \
1053USAGE_MOUNT_FORCE("\n\t-f:\tForce filesystem umount (i.e. unreachable NFS server)") \ 1033 USAGE_MOUNT_FORCE("\n\t-f:\tForce filesystem umount (i.e. unreachable NFS server)") \
1054USAGE_MOUNT_LOOP("\n\t-l:\tDo not free loop device (if a loop device has been used)" \ 1034 USAGE_MOUNT_LOOP("\n\t-l:\tDo not free loop device (if a loop device has been used)")
1055 )
1056 1035
1057#define uname_trivial_usage \ 1036#define uname_trivial_usage \
1058 "[OPTION]..." 1037 "[OPTION]..."
@@ -1078,9 +1057,9 @@ USAGE_MOUNT_LOOP("\n\t-l:\tDo not free loop device (if a loop device has been us
1078 "\t-u\tonly print unique lines" 1057 "\t-u\tonly print unique lines"
1079 1058
1080#define unix2dos_trivial_usage \ 1059#define unix2dos_trivial_usage \
1081 "< unixfile > dosfile" 1060 "[option] [file]"
1082#define unix2dos_full_usage \ 1061#define unix2dos_full_usage \
1083 "Converts a text file from unix format to dos format." 1062 "See 'dos2unix --help' for help!"
1084 1063
1085#define update_trivial_usage \ 1064#define update_trivial_usage \
1086 "[options]" 1065 "[options]"