#ifndef __BB_USAGE_H__
#define __BB_USAGE_H__

#define addgroup_trivial_usage \
	"[-g GID] group_name [user_name]"
#define addgroup_full_usage \
	"Adds a group to the system\n\n" \
	"Options:\n" \
	"\t-g GID\t\tspecify gid"

#define adduser_trivial_usage \
	"[OPTIONS] user_name"
#define adduser_full_usage \
	"Adds a user to the system\n\n" \
	"Options:\n" \
	"\t-h DIR\t\tAssign home directory DIR\n" \
	"\t-g GECOS\tAssign gecos field GECOS\n" \
	"\t-s SHELL\tAssign login shell SHELL\n" \
	"\t-G\t\tAdd the user to existing group GROUP\n" \
	"\t-S\t\tcreate a system user (ignored)\n" \
	"\t-D\t\tDo not assign a password (logins still possible via ssh)\n" \
	"\t-H\t\tDo not create the home directory"

#define adjtimex_trivial_usage \
	"[-q] [-o offset] [-f frequency] [-p timeconstant] [-t tick]"
#define adjtimex_full_usage \
	"Reads and optionally sets system timebase parameters.\n" \
	"See adjtimex(2).\n\n" \
	"Options:\n" \
	"\t-q\t\tquiet mode - do not print\n" \
	"\t-o offset\ttime offset, microseconds\n" \
	"\t-f frequency\tfrequency adjust, integer kernel units (65536 is 1ppm)\n" \
	"\t\t\t(positive values make the system clock run fast)\n" \
	"\t-t tick\t\tmicroseconds per tick, usually 10000\n" \
	"\t-p timeconstant"

#define ar_trivial_usage \
	"[-o] [-v] [-p] [-t] [-x] ARCHIVE FILES"
#define ar_full_usage \
	"Extract or list FILES from an ar archive.\n\n" \
	"Options:\n" \
	"\t-o\t\tpreserve original dates\n" \
	"\t-p\t\textract to stdout\n" \
	"\t-t\t\tlist\n" \
	"\t-x\t\textract\n" \
	"\t-v\t\tverbosely list files processed"

#define arping_trivial_usage \
	"[-fqbDUA] [-c count] [-w timeout] [-I device] [-s sender] target"
#define arping_full_usage \
	"Ping hosts by ARP requests/replies.\n\n" \
	"Options:\n" \
	"\t-f\t\tQuit on first ARP reply\n" \
	"\t-q\t\tBe quiet\n" \
	"\t-b\t\tKeep broadcasting, don't go unicast\n" \
	"\t-D\t\tDuplicated address detection mode\n" \
	"\t-U\t\tUnsolicited ARP mode, update your neighbours\n" \
	"\t-A\t\tARP answer mode, update your neighbours\n" \
	"\t-c count\tStop after sending count ARP request packets\n" \
	"\t-w timeout\tTime to wait for ARP reply, in seconds\n" \
	"\t-I device\tOutgoing interface name, default is eth0\n" \
	"\t-s sender\tSet specific sender IP address\n" \
	"\ttarget\t\tTarget IP address of ARP request"

#define ash_trivial_usage \
	"[FILE]...\n" \
	"or: ash -c command [args]..."
#define ash_full_usage \
	"The ash shell (command interpreter)"

#define awk_trivial_usage \
	"[OPTION]... [program-text] [FILE ...]"
#define awk_full_usage \
	"Options:\n" \
	"\t-v var=val\t\tassign value 'val' to variable 'var'\n" \
	"\t-F sep\t\tuse 'sep' as field separator\n" \
	"\t-f progname\t\tread program source from file 'progname'"

#define basename_trivial_usage \
	"FILE [SUFFIX]"
#define basename_full_usage \
	"Strips directory path and suffixes from FILE.\n" \
	"If specified, also removes any trailing SUFFIX."
#define basename_example_usage \
	"$ basename /usr/local/bin/foo\n" \
	"foo\n" \
	"$ basename /usr/local/bin/\n" \
	"bin\n" \
	"$ basename /foo/bar.txt .txt\n" \
	"bar"

#define bunzip2_trivial_usage \
	"[OPTION]... [FILE]"
#define bunzip2_full_usage \
	"Uncompress FILE (or standard input if FILE is '-' or omitted).\n\n" \
	"Options:\n" \
	"\t-c\tWrite output to standard output\n" \
	"\t-f\tForce"

#define bzcat_trivial_usage \
	"FILE"
#define bzcat_full_usage \
	"Uncompress to stdout."

#define cal_trivial_usage \
	"[-jy] [[month] year]"
#define cal_full_usage \
	"Display a calendar.\n" \
	"\nOptions:\n" \
	"\t-j\tUse julian dates\n" \
	"\t-y\tDisplay the entire year"

#define cat_trivial_usage \
	"[-u] [FILE]..."
#define cat_full_usage \
	"Concatenates FILE(s) and prints them to stdout.\n\n" \
	"Options:\n" \
	"\t-u\tignored since unbuffered i/o is always used"
#define cat_example_usage \
	"$ cat /proc/uptime\n" \
	"110716.72 17.67"

#define chattr_trivial_usage \
	"[-R] [-+=AacDdijsStTu] [-v version] files..."
#define chattr_full_usage \
	"change file attributes on an ext2 fs\n\n" \
	"Modifiers:\n" \
	"\t-\tremove attributes\n" \
	"\t+\tadd attributes\n" \
	"\t=\tset attributes\n" \
	"Attributes:\n" \
	"\tA\tdon't track atime\n" \
	"\ta\tappend mode only\n" \
	"\tc\tenable compress\n" \
	"\tD\twrite dir contents synchronously\n" \
	"\td\tdo not backup with dump\n" \
	"\ti\tcannot be modified (immutable)\n" \
	"\tj\twrite all data to journal first\n" \
	"\ts\tzero disk storage when deleted\n" \
	"\tS\twrite file contents synchronously\n" \
	"\tt\tdisable tail-merging of partial blocks with other files\n" \
	"\tu\tallow file to be undeleted\n" \
	"Options:\n" \
	"\t-R\trecursively list subdirectories\n" \
	"\t-v\tset the file's version/generation number"

#define chgrp_trivial_usage \
	"[OPTION]... GROUP FILE..."
#define chgrp_full_usage \
	"Change the group membership of each FILE to GROUP.\n" \
	"\nOptions:\n" \
	"\t-R\tChanges files and directories recursively"
#define chgrp_example_usage \
	"$ ls -l /tmp/foo\n" \
	"-r--r--r--    1 andersen andersen        0 Apr 12 18:25 /tmp/foo\n" \
	"$ chgrp root /tmp/foo\n" \
	"$ ls -l /tmp/foo\n" \
	"-r--r--r--    1 andersen root            0 Apr 12 18:25 /tmp/foo\n"

#define chmod_trivial_usage \
	"[-R] MODE[,MODE]... FILE..."
#define chmod_full_usage \
	"Each MODE is one or more of the letters ugoa, one of the\n" \
	"symbols +-= and one or more of the letters rwxst.\n\n" \
	"Options:\n" \
	"\t-R\tChanges files and directories recursively"
#define chmod_example_usage \
	"$ ls -l /tmp/foo\n" \
	"-rw-rw-r--    1 root     root            0 Apr 12 18:25 /tmp/foo\n" \
	"$ chmod u+x /tmp/foo\n" \
	"$ ls -l /tmp/foo\n" \
	"-rwxrw-r--    1 root     root            0 Apr 12 18:25 /tmp/foo*\n" \
	"$ chmod 444 /tmp/foo\n" \
	"$ ls -l /tmp/foo\n" \
	"-r--r--r--    1 root     root            0 Apr 12 18:25 /tmp/foo\n"

#define chown_trivial_usage \
	"[ -Rh ]...  OWNER[<.|:>[GROUP]] FILE..."
#define chown_full_usage \
	"Change the owner and/or group of each FILE to OWNER and/or GROUP.\n" \
	"\nOptions:\n" \
	"\t-R\tChanges files and directories recursively\n" \
	"\t-h\tDo not dereference symbolic links"
#define chown_example_usage \
	"$ ls -l /tmp/foo\n" \
	"-r--r--r--    1 andersen andersen        0 Apr 12 18:25 /tmp/foo\n" \
	"$ chown root /tmp/foo\n" \
	"$ ls -l /tmp/foo\n" \
	"-r--r--r--    1 root     andersen        0 Apr 12 18:25 /tmp/foo\n" \
	"$ chown root.root /tmp/foo\n" \
	"ls -l /tmp/foo\n" \
	"-r--r--r--    1 root     root            0 Apr 12 18:25 /tmp/foo\n"

#define chroot_trivial_usage \
	"NEWROOT [COMMAND...]"
#define chroot_full_usage \
	"Run COMMAND with root directory set to NEWROOT."
#define chroot_example_usage \
	"$ ls -l /bin/ls\n" \
	"lrwxrwxrwx    1 root     root          12 Apr 13 00:46 /bin/ls -> /BusyBox\n" \
	"# mount /dev/hdc1 /mnt -t minix\n" \
	"# chroot /mnt\n" \
	"# ls -l /bin/ls\n" \
	"-rwxr-xr-x    1 root     root        40816 Feb  5 07:45 /bin/ls*\n"

#define chvt_trivial_usage \
	"N"
#define chvt_full_usage \
	"Changes the foreground virtual terminal to /dev/ttyN"

#define clear_trivial_usage \
	""
#define clear_full_usage \
	"Clear screen."

#define cmp_trivial_usage \
	"[-l] [-s] FILE1 [FILE2]"
#define cmp_full_usage \
	"Compares FILE1 vs stdin if FILE2 is not specified.\n\n" \
	"Options:\n" \
	"\t-l\tWrite the byte numbers (decimal) and values (octal)\n" \
	"\t\t  for all differing bytes\n" \
	"\t-s\tquiet mode - do not print"

#define comm_trivial_usage \
	"[-123] FILE1 FILE2"
#define comm_full_usage \
	"Compares FILE1 to FILE2, or to stdin if = is specified.\n\n" \
	"Options:\n" \
	"\t-1\tSuppress lines unique to FILE1\n" \
	"\t-2\tSuppress lines unique to FILE2\n" \
	"\t-3\tSuppress lines common to both files"

#define bbconfig_trivial_usage \
	""
#define bbconfig_full_usage \
	"Print the config file which built busybox\n"
       
#define cp_trivial_usage \
	"[OPTION]... SOURCE DEST"
#define cp_full_usage \
	"Copies SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.\n" \
	"\n" \
	"\t-a\tSame as -dpR\n" \
	"\t-d,-P\tPreserves links\n" \
	"\t-H,-L\tDereference all symlinks (implied by default)\n" \
	"\t-p\tPreserves file attributes if possible\n" \
	"\t-f\tforce (implied; ignored) - always set\n" \
	"\t-i\tinteractive, prompt before overwrite\n" \
	"\t-R,-r\tCopies directories recursively"

#define cpio_trivial_usage \
	"-[dimtuv][F cpiofile]"
#define cpio_full_usage \
	"Extract or list files from a cpio archive\n" \
	"Main operation mode:\n" \
	"\td\t\tmake leading directories\n" \
	"\ti\t\textract\n" \
	"\tm\t\tpreserve mtime\n" \
	"\tt\t\tlist\n" \
	"\tv\t\tverbose\n" \
	"\tu\t\tunconditional overwrite\n" \
	"\tF\t\tinput from file"

#define crond_trivial_usage \
	"-d[#] -c <crondir> -f -b"
#define crond_full_usage \
	"\t-d [#] -l [#] -S -L logfile -f -b -c dir\n" \
	"\t-d num\tdebug level\n" \
	"\t-l num\tlog level (8 - default)\n" \
	"\t-S\tlog to syslogd (default)\n" \
	"\t-L file\tlog to file\n" \
	"\t-f\trun in fordeground\n" \
	"\t-b\trun in background (default)\n" \
	"\t-c dir\tworking dir"

#define crontab_trivial_usage \
	"[-c dir] {file|-}|[-u|-l|-e|-d user]"
#define crontab_full_usage \
	"\tfile <opts>  replace crontab from file\n" \
	"\t-    <opts>  replace crontab from stdin\n" \
	"\t-u user      specify user\n" \
	"\t-l [user]    list crontab for user\n" \
	"\t-e [user]    edit crontab for user\n" \
	"\t-d [user]    delete crontab for user\n" \
	"\t-c dir       specify crontab directory"


#define cut_trivial_usage \
	"[OPTION]... [FILE]..."
#define cut_full_usage \
	"Prints selected fields from each input FILE to standard output.\n\n" \
	"Options:\n" \
	"\t-b LIST\t\tOutput only bytes from LIST\n" \
	"\t-c LIST\t\tOutput only characters from LIST\n" \
	"\t-d CHAR\t\tUse CHAR instead of tab as the field delimiter\n" \
	"\t-s\t\tOutput only the lines containing delimiter\n" \
	"\t-f N\t\tPrint only these fields\n" \
	"\t-n\t\tIgnored"
#define cut_example_usage \
	"$ echo \"Hello world\" | cut -f 1 -d ' '\n" \
	"Hello\n" \
	"$ echo \"Hello world\" | cut -f 2 -d ' '\n" \
	"world\n"

#ifdef CONFIG_FEATURE_DATE_ISOFMT
#define USAGE_DATE_ISOFMT(a) a
#else
#define USAGE_DATE_ISOFMT(a)
#endif

#define date_trivial_usage \
	"[OPTION]... [MMDDhhmm[[CC]YY][.ss]] [+FORMAT]"
#define date_full_usage \
	"Displays the current time in the given FORMAT, or sets the system date.\n" \
	"\nOptions:\n" \
	"\t-R\t\tOutputs RFC-822 compliant date string\n" \
	"\t-d STRING\tDisplays time described by STRING, not `now'\n" \
	USAGE_DATE_ISOFMT("\t-I[TIMESPEC]\tOutputs an ISO-8601 compliant date/time string\n" \
	"\t\t\tTIMESPEC=`date' (or missing) for date only,\n" \
	"\t\t\t`hours', `minutes', or `seconds' for date and,\n" \
	"\t\t\ttime to the indicated precision\n") \
	"\t-s\t\tSets time described by STRING\n" \
	"\t-r FILE\t\tDisplays the last modification time of FILE\n" \
	"\t-u\t\tPrints or sets Coordinated Universal Time"
#define date_example_usage \
	"$ date\n" \
	"Wed Apr 12 18:52:41 MDT 2000\n"

#define dc_trivial_usage \
	"expression ..."
#define dc_full_usage \
	"This is a Tiny RPN calculator that understands the\n" \
	"following operations: +, add, -, sub, *, mul, /, div, %, mod, " \
	"**, exp, and, or, not, eor.\n" \
	"For example: 'dc 2 2 add' -> 4, and 'dc 8 8 \\* 2 2 + /' -> 16.\n" \
	"\nOptions:\n" \
	"p - Prints the value on the top of the stack, without altering the stack\n" \
	"f - Prints the entire contents of the stack without altering anything\n" \
	"o - Pops the value off the top of the stack and uses it to set the output radix\n" \
	"    Only 10 and 16 are supported"
#define dc_example_usage \
	"$ dc 2 2 + p\n" \
	"4\n" \
	"$ dc 8 8 \\* 2 2 + / p\n" \
	"16\n" \
	"$ dc 0 1 and p\n" \
	"0\n" \
	"$ dc 0 1 or p\n" \
	"1\n" \
	"$ echo 72 9 div 8 mul p | dc\n" \
	"64\n"

#define dd_trivial_usage \
	"[if=FILE] [of=FILE] [bs=N] [count=N] [skip=N]\n" \
	"\t  [seek=N] [conv=notrunc|noerror|sync]"
#define dd_full_usage \
	"Copy a file, converting and formatting according to options\n\n" \
	"\tif=FILE\t\tread from FILE instead of stdin\n" \
	"\tof=FILE\t\twrite to FILE instead of stdout\n" \
	"\tbs=N\t\tread and write N bytes at a time\n" \
	"\tcount=N\t\tcopy only N input blocks\n" \
	"\tskip=N\t\tskip N input blocks\n" \
	"\tseek=N\t\tskip N output blocks\n" \
	"\tconv=notrunc\tdon't truncate output file\n" \
	"\tconv=noerror\tcontinue after read errors\n" \
	"\tconv=sync\tpad blocks with zeros\n" \
	"\n" \
	"Numbers may be suffixed by c (x1), w (x2), b (x512), kD (x1000), k (x1024),\n" \
	"MD (x1000000), M (x1048576), GD (x1000000000) or G (x1073741824)"
#define dd_example_usage \
	"$ dd if=/dev/zero of=/dev/ram1 bs=1M count=4\n" \
	"4+0 records in\n" \
	"4+0 records out\n"

#define deallocvt_trivial_usage \
	"[N]"
#define deallocvt_full_usage \
	 "Deallocate unused virtual terminal /dev/ttyN"

#define delgroup_trivial_usage \
	"GROUP"
#define delgroup_full_usage \
	 "Deletes group GROUP from the system"

#define deluser_trivial_usage \
	"USER"
#define deluser_full_usage \
	 "Deletes user USER from the system"

#ifdef CONFIG_DEVFSD_FG_NP
#  define USAGE_DEVFSD_FG_NP(a) a
#else
#  define USAGE_DEVFSD_FG_NP(a)
#endif

#define devfsd_trivial_usage \
	"mntpnt [-v]" \
	USAGE_DEVFSD_FG_NP("[-fg][-np]" )
#define devfsd_full_usage \
	"Optional daemon for managing devfs permissions and old device name symlinks.\n" \
	"\nOptions:\n" \
	"\tmntpnt\tThe mount point where devfs is mounted.\n\n" \
	"\t-v\tPrint the protocol version numbers for devfsd\n" \
	"\t\tand the kernel-side protocol version and exits." \
	USAGE_DEVFSD_FG_NP( "\n\n\t-fg\tRun the daemon in the foreground.\n\n" \
	"\t-np\tExit  after  parsing  the configuration file\n" \
	"\t\tand processing synthetic REGISTER events.\n" \
	"\t\tDo not poll for events.")

#ifdef CONFIG_FEATURE_HUMAN_READABLE
#  define USAGE_HUMAN_READABLE(a) a
#  define USAGE_NOT_HUMAN_READABLE(a)
#else
#  define USAGE_HUMAN_READABLE(a)
#  define USAGE_NOT_HUMAN_READABLE(a) a
#endif
#define df_trivial_usage \
	"[-" USAGE_HUMAN_READABLE("hm") USAGE_NOT_HUMAN_READABLE("") "k] [FILESYSTEM ...]"
#define df_full_usage \
	"Print the filesystem space used and space available.\n\n" \
	"Options:\n" \
	USAGE_HUMAN_READABLE( \
	"\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \
	"\t-m\tprint sizes in megabytes\n" \
	"\t-k\tprint sizes in kilobytes(default)") USAGE_NOT_HUMAN_READABLE( \
	"\n\t-k\tprint sizes in kilobytes(compatibility)")
#define df_example_usage \
	"$ df\n" \
	"Filesystem           1k-blocks      Used Available Use% Mounted on\n" \
	"/dev/sda3              8690864   8553540    137324  98% /\n" \
	"/dev/sda1                64216     36364     27852  57% /boot\n" \
	"$ df /dev/sda3\n" \
	"Filesystem           1k-blocks      Used Available Use% Mounted on\n" \
	"/dev/sda3              8690864   8553540    137324  98% /\n"

#define dirname_trivial_usage \
	"FILENAME"
#define dirname_full_usage \
	"Strips non-directory suffix from FILENAME"
#define dirname_example_usage \
	"$ dirname /tmp/foo\n" \
	"/tmp\n" \
	"$ dirname /tmp/foo/\n" \
	"/tmp\n"

#define dmesg_trivial_usage \
	"[-c] [-n LEVEL] [-s SIZE]"
#define dmesg_full_usage \
	"Prints or controls the kernel ring buffer\n\n" \
	"Options:\n" \
	"\t-c\t\tClears the ring buffer's contents after printing\n" \
	"\t-n LEVEL\tSets console logging level\n" \
	"\t-s SIZE\t\tUse a buffer of size SIZE"

#define dos2unix_trivial_usage \
	"[option] [FILE]"
#define dos2unix_full_usage \
	"Converts FILE from dos format to unix format.  When no option\n" \
	"is given, the input is converted to the opposite output format.\n" \
	"When no file is given, uses stdin for input and stdout for output.\n\n" \
	"Options:\n" \
	"\t-u\toutput will be in UNIX format\n" \
	"\t-d\toutput will be in DOS format"

#define dpkg_trivial_usage \
	"[-ilCPru] [-F option] package_name"
#define dpkg_full_usage \
	"dpkg is a utility to install, remove and manage Debian packages.\n\n" \
	"Options:\n" \
	"\t-i\t\tInstall the package\n" \
	"\t-l\t\tList of installed packages\n" \
	"\t-C\t\tConfigure an unpackaged package\n" \
	"\t-F depends\tIgnore depency problems\n" \
	"\t-P\t\tPurge all files of a package\n" \
	"\t-r\t\tRemove all but the configuration files for a package\n" \
	"\t-u\t\tUnpack a package, but don't configure it"

#define dpkg_deb_trivial_usage \
	"[-cefxX] FILE [argument]"
#define dpkg_deb_full_usage \
	"Perform actions on Debian packages (.debs)\n\n" \
	"Options:\n" \
	"\t-c\tList contents of filesystem tree\n" \
	"\t-e\tExtract control files to [argument] directory\n" \
	"\t-f\tDisplay control field name starting with [argument]\n" \
	"\t-x\tExtract packages filesystem tree to directory\n" \
	"\t-X\tVerbose extract"
#define dpkg_deb_example_usage \
	"$ dpkg-deb -X ./busybox_0.48-1_i386.deb /tmp\n"

#ifdef CONFIG_FEATURE_DU_DEFALT_BLOCKSIZE_1K
#define USAGE_DU_DEFALT_BLOCKSIZE_1k(a) a
#define USAGE_NOT_DU_DEFALT_BLOCKSIZE_1k(a)
#else
#define USAGE_DU_DEFALT_BLOCKSIZE_1k(a)
#define USAGE_NOT_DU_DEFALT_BLOCKSIZE_1k(a) a
#endif

#define du_trivial_usage \
	"[-aHLdclsx" USAGE_HUMAN_READABLE("hm") "k] [FILE]..."
#define du_full_usage \
	"Summarizes disk space used for each FILE and/or directory.\n" \
	"Disk space is printed in units of " \
	USAGE_DU_DEFALT_BLOCKSIZE_1k("1024") USAGE_NOT_DU_DEFALT_BLOCKSIZE_1k("512") \
	" bytes.\n\n" \
	"Options:\n" \
	"\t-a\tshow sizes of files in addition to directories\n" \
	"\t-H\tfollow symbolic links that are FILE command line args\n" \
	"\t-L\tfollow all symbolic links encountered\n" \
	"\t-d N\tlimit output to directories (and files with -a) of depth < N\n" \
	"\t-c\toutput a grand total\n" \
	"\t-l\tcount sizes many times if hard linked\n" \
	"\t-s\tdisplay only a total for each argument\n" \
	"\t-x\tskip directories on different filesystems\n" \
	USAGE_HUMAN_READABLE( \
	"\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \
	"\t-m\tprint sizes in megabytes\n" ) \
	"\t-k\tprint sizes in kilobytes" USAGE_DU_DEFALT_BLOCKSIZE_1k("(default)")
#define du_example_usage \
	"$ du\n" \
	"16      ./CVS\n" \
	"12      ./kernel-patches/CVS\n" \
	"80      ./kernel-patches\n" \
	"12      ./tests/CVS\n" \
	"36      ./tests\n" \
	"12      ./scripts/CVS\n" \
	"16      ./scripts\n" \
	"12      ./docs/CVS\n" \
	"104     ./docs\n" \
	"2417    .\n"

#define dumpkmap_trivial_usage \
	"> keymap"
#define dumpkmap_full_usage \
	"Prints out a binary keyboard translation table to standard output."
#define dumpkmap_example_usage \
	"$ dumpkmap > keymap\n"

#define dumpleases_trivial_usage \
	"[-r|-a] [-f LEASEFILE]"
#define dumpleases_full_usage \
	"Displays the DHCP leases granted by udhcpd.\n\n" \
	"Options:\n" \
	"\t-f,\t--file=FILENAME\tLeases file to load\n" \
	"\t-r,\t--remaining\tInterpret lease times as time remaing\n" \
	"\t-a,\t--absolute\tInterpret lease times as expire time"

#ifdef CONFIG_FEATURE_FANCY_ECHO
#  define USAGE_FANCY_ECHO(a) a
#else
#  define USAGE_FANCY_ECHO(a)
#endif

#define echo_trivial_usage \
	USAGE_FANCY_ECHO("[-neE] ") "[ARG ...]"
#define echo_full_usage \
	"Prints the specified ARGs to stdout\n\n" \
	USAGE_FANCY_ECHO("Options:\n" \
	"\t-n\tsuppress trailing newline\n" \
	"\t-e\tinterpret backslash-escaped characters (i.e., \\t=tab)\n" \
	"\t-E\tdisable interpretation of backslash-escaped characters")
#define echo_example_usage \
	"$ echo \"Erik is cool\"\n" \
	"Erik is cool\n" \
	USAGE_FANCY_ECHO("$  echo -e \"Erik\\nis\\ncool\"\n" \
	"Erik\n" \
	"is\n" \
	"cool\n" \
	"$ echo \"Erik\\nis\\ncool\"\n" \
	"Erik\\nis\\ncool\n")

#define eject_trivial_usage \
	"[-t] [DEVICE]"
#define eject_full_usage \
	"Eject specified DEVICE (or default /dev/cdrom).\n\n" \
	"Options:\n" \
	"\t-t\tclose tray"

#define env_trivial_usage \
	"[-iu] [-] [name=value]... [command]"
#define env_full_usage \
	"Prints the current environment or runs a program after setting\n" \
	"up the specified environment.\n\n" \
	"Options:\n" \
	"\t-, -i\tstart with an empty environment\n" \
	"\t-u\tremove variable from the environment"

#define ether_wake_trivial_usage \
	"[-b] [-i iface] [-p aa:bb:cc:dd[:ee:ff]] MAC"
#define ether_wake_full_usage \
	"Send a magic packet to wake up sleeping machines.\n" \
	"MAC must be a station address (00:11:22:33:44:55) or\n" \
	"    a hostname with a known 'ethers' entry.\n\n" \
	"Options:\n" \
	"\t-b\t\tSend wake-up packet to the broadcast address\n" \
	"\t-i iface\tUse interface ifname instead of the default \"eth0\"\n" \
	"\t-p pass\tAppend the four or six byte password PW to the packet\n"

#define expr_trivial_usage \
	"EXPRESSION"
#define expr_full_usage \
	"Prints the value of EXPRESSION to standard output.\n\n" \
	"EXPRESSION may be:\n" \
	"\tARG1 |  ARG2	ARG1 if it is neither null nor 0, otherwise ARG2\n" \
	"\tARG1 &  ARG2	ARG1 if neither argument is null or 0, otherwise 0\n" \
	"\tARG1 <  ARG2	ARG1 is less than ARG2\n" \
	"\tARG1 <= ARG2	ARG1 is less than or equal to ARG2\n" \
	"\tARG1 =  ARG2	ARG1 is equal to ARG2\n" \
	"\tARG1 != ARG2	ARG1 is unequal to ARG2\n" \
	"\tARG1 >= ARG2	ARG1 is greater than or equal to ARG2\n" \
	"\tARG1 >  ARG2	ARG1 is greater than ARG2\n" \
	"\tARG1 +  ARG2	arithmetic sum of ARG1 and ARG2\n" \
	"\tARG1 -  ARG2	arithmetic difference of ARG1 and ARG2\n" \
	"\tARG1 *  ARG2	arithmetic product of ARG1 and ARG2\n" \
	"\tARG1 /  ARG2	arithmetic quotient of ARG1 divided by ARG2\n" \
	"\tARG1 %  ARG2	arithmetic remainder of ARG1 divided by ARG2\n" \
	"\tSTRING : REGEXP             anchored pattern match of REGEXP in STRING\n" \
	"\tmatch STRING REGEXP         same as STRING : REGEXP\n" \
	"\tsubstr STRING POS LENGTH    substring of STRING, POS counted from 1\n" \
	"\tindex STRING CHARS          index in STRING where any CHARS is found,\n" \
	"\t                            or 0\n" \
	"\tlength STRING               length of STRING\n" \
	"\tquote TOKEN                 interpret TOKEN as a string, even if\n" \
	"\t                            it is a keyword like `match' or an\n" \
	"\t                            operator like `/'\n" \
	"\t( EXPRESSION )              value of EXPRESSION\n\n" \
	"Beware that many operators need to be escaped or quoted for shells.\n" \
	"Comparisons are arithmetic if both ARGs are numbers, else\n" \
	"lexicographical.  Pattern matches return the string matched between \n" \
	"\\( and \\) or null; if \\( and \\) are not used, they return the number \n" \
	"of characters matched or 0."

#define fakeidentd_trivial_usage \
	"[-b ip] [STRING]"
#define fakeidentd_full_usage \
	"Returns a set string to auth requests\n\n" \
	"\t-b\tBind to ip address\n" \
	"\tSTRING\tThe ident answer string (default is nobody)"

#define false_trivial_usage \
	""
#define false_full_usage \
	"Return an exit code of FALSE (1)."
#define false_example_usage \
	"$ false\n" \
	"$ echo $?\n" \
	"1\n"

#define fbset_trivial_usage \
	"[options] [mode]"
#define fbset_full_usage \
	"Show and modify frame buffer settings"
#define fbset_example_usage \
	"$ fbset\n" \
	"mode \"1024x768-76\"\n" \
	"\t# D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz\n" \
	"\tgeometry 1024 768 1024 768 16\n" \
	"\ttimings 12714 128 32 16 4 128 4\n" \
	"\taccel false\n" \
	"\trgba 5/11,6/5,5/0,0/0\n" \
	"endmode\n"

#define fdflush_trivial_usage \
	"DEVICE"
#define fdflush_full_usage \
	"Forces floppy disk drive to detect disk change"

#define fdformat_trivial_usage \
	"[-n] DEVICE"
#define fdformat_full_usage \
	"Low-level formats a floppy disk\n\n" \
	"Options:\n" \
	"\t-n\tDon't verify after format"

#define fdisk_trivial_usage \
	"[-luv] [-C CYLINDERS] [-H HEADS] [-S SECTORS] [-b SSZ] DISK"
#define fdisk_full_usage \
	"Change partition table\n" \
	"Options:\n" \
	"\t-l  List partition table(s)\n" \
	"\t-u  Give Start and End in sector (instead of cylinder) units\n" \
	"\t-s PARTITION  Give partition size(s) in blocks\n" \
	"\t-b 2048: (for certain MO disks) use 2048-byte sectors\n" \
	"\t-C CYLINDERS  Set the number of cylinders\n" \
	"\t-H HEADS  Set the number of heads\n" \
	"\t-S SECTORS  Set the number of sectors\n" \
	"\t-v  Give fdisk version"

#ifdef CONFIG_FEATURE_FIND_TYPE
#  define USAGE_FIND_TYPE(a) a
#else
#  define USAGE_FIND_TYPE(a)
#endif
#ifdef CONFIG_FEATURE_FIND_PERM
#  define USAGE_FIND_PERM(a) a
#else
#  define USAGE_FIND_PERM(a)
#endif
#ifdef CONFIG_FEATURE_FIND_MTIME
#  define USAGE_FIND_MTIME(a) a
#else
#  define USAGE_FIND_MTIME(a)
#endif
#ifdef CONFIG_FEATURE_FIND_NEWER
#  define USAGE_FIND_NEWER(a) a
#else
#  define USAGE_FIND_NEWER(a)
#endif
#ifdef CONFIG_FEATURE_FIND_INUM
#  define USAGE_FIND_INUM(a) a
#else
#  define USAGE_FIND_INUM(a)
#endif

#define find_trivial_usage \
	"[PATH...] [EXPRESSION]"
#define find_full_usage \
	"Search for files in a directory hierarchy.  The default PATH is\n" \
	"the current directory; default EXPRESSION is '-print'\n" \
	"\nEXPRESSION may consist of:\n" \
	"\t-follow\t\tDereference symbolic links\n" \
	"\t-name PATTERN\tFile name (leading directories removed) matches PATTERN\n" \
	"\t-print\t\tPrint (default and assumed)\n" \
	USAGE_FIND_TYPE( \
	"\n\t-type X\t\tFiletype matches X (where X is one of: f,d,l,b,c,...)" \
) USAGE_FIND_PERM( \
	"\n\t-perm PERMS\tPermissions match any of (+NNN); all of (-NNN);\n\t\t\tor exactly (NNN)" \
) USAGE_FIND_MTIME( \
	"\n\t-mtime TIME\tModified time is greater than (+N); less than (-N);\n\t\t\tor exactly (N) days" \
) USAGE_FIND_NEWER( \
	"\n\t-newer FILE\tModified time is more recent than FILE's" \
) USAGE_FIND_INUM( \
	"\n\t-inum N\t\tFile has inode number N")
#define find_example_usage \
	"$ find / -name passwd\n" \
	"/etc/passwd\n"

#define fold_trivial_usage \
	"[-bsw] [FILE]"
#define fold_full_usage \
	"Wrap input lines in each FILE (standard input by default), writing to\n" \
	"standard output.\n\n" \
	"Options:\n" \
	"\t-b\tcount bytes rather than columns\n" \
	"\t-s\tbreak at spaces\n" \
	"\t-w\tuse WIDTH columns instead of 80"

#define free_trivial_usage \
	""
#define free_full_usage \
	"Displays the amount of free and used system memory"
#define free_example_usage \
	"$ free\n" \
	"              total         used         free       shared      buffers\n" \
	"  Mem:       257628       248724         8904        59644        93124\n" \
	" Swap:       128516         8404       120112\n" \
	"Total:       386144       257128       129016\n" \

#define freeramdisk_trivial_usage \
	"DEVICE"
#define freeramdisk_full_usage \
	"Frees all memory used by the specified ramdisk."
#define freeramdisk_example_usage \
	"$ freeramdisk /dev/ram2\n"

#define fsck_minix_trivial_usage \
	"[-larvsmf] /dev/name"
#define fsck_minix_full_usage \
	"Performs a consistency check for MINIX filesystems.\n\n" \
	"Options:\n" \
	"\t-l\tLists all filenames\n" \
	"\t-r\tPerform interactive repairs\n" \
	"\t-a\tPerform automatic repairs\n" \
	"\t-v\tverbose\n" \
	"\t-s\tOutputs super-block information\n" \
	"\t-m\tActivates MINIX-like \"mode not cleared\" warnings\n" \
	"\t-f\tForce file system check"

#define ftpget_trivial_usage \
	"[options] remote-host local-file remote-file"
#define ftpget_full_usage \
	"Retrieve a remote file via FTP.\n\n" \
	"Options:\n" \
	"\t-c, --continue         Continue a previous transfer\n" \
	"\t-v, --verbose          Verbose\n" \
	"\t-u, --username         Username to be used\n" \
	"\t-p, --password         Password to be used\n" \
	"\t-P, --port             Port number to be used"

#define ftpput_trivial_usage \
	"[options] remote-host remote-file local-file"
#define ftpput_full_usage \
	"Store a local file on a remote machine via FTP.\n\n" \
	"Options:\n" \
	"\t-v, --verbose          Verbose\n" \
	"\t-u, --username         Username to be used\n" \
	"\t-p, --password         Password to be used\n" \
	"\t-P, --port             Port number to be used"

#define getopt_trivial_usage \
	"[OPTIONS]..."
#define getopt_full_usage \
	"Parse command options\n" \
	"\t-a, --alternative		Allow long options starting with single -\n" \
	"\t-l, --longoptions=longopts	Long options to be recognized\n" \
	"\t-n, --name=progname		The name under which errors are reported\n" \
	"\t-o, --options=optstring	Short options to be recognized\n" \
	"\t-q, --quiet			Disable error reporting by getopt(3)\n" \
	"\t-Q, --quiet-output		No normal output\n" \
	"\t-s, --shell=shell		Set shell quoting conventions\n" \
	"\t-T, --test			Test for getopt(1) version\n" \
	"\t-u, --unquoted		Do not quote the output"
#define getopt_example_usage \
	"$ cat getopt.test\n" \
	"#!/bin/sh\n" \
	"GETOPT=`getopt -o ab:c:: --long a-long,b-long:,c-long:: \\\n" \
	"       -n 'example.busybox' -- \"$@\"`\n" \
	"if [ $? != 0 ] ; then  exit 1 ; fi\n" \
	"eval set -- \"$GETOPT\"\n" \
	"while true ; do\n" \
	" case $1 in\n" \
	"   -a|--a-long) echo \"Option a\" ; shift ;;\n" \
	"   -b|--b-long) echo \"Option b, argument `$2'\" ; shift 2 ;;\n" \
	"   -c|--c-long)\n" \
	"     case \"$2\" in\n" \
	"       \"\") echo \"Option c, no argument\"; shift 2 ;;\n" \
	"       *)  echo \"Option c, argument `$2'\" ; shift 2 ;;\n" \
	"     esac ;;\n" \
	"   --) shift ; break ;;\n" \
	"   *) echo \"Internal error!\" ; exit 1 ;;\n" \
	" esac\n" \
	"done\n"

#define getty_trivial_usage \
	"[OPTIONS]... baud_rate,... line [termtype]"
#define getty_full_usage \
	"Opens a tty, prompts for a login name, then invokes /bin/login\n\n" \
	"Options:\n" \
	"\t-h\t\tEnable hardware (RTS/CTS) flow control\n" \
	"\t-i\t\tDo not display /etc/issue before running login\n" \
	"\t-L\t\tLocal line, so do not do carrier detect\n" \
	"\t-m\t\tGet baud rate from modem's CONNECT status message\n" \
	"\t-w\t\tWait for a CR or LF before sending /etc/issue\n" \
	"\t-n\t\tDo not prompt the user for a login name\n" \
	"\t-f issue_file\tDisplay issue_file instead of /etc/issue\n" \
	"\t-l login_app\tInvoke login_app instead of /bin/login\n" \
	"\t-t timeout\tTerminate after timeout if no username is read\n" \
	"\t-I initstring\tSets the init string to send before anything else\n" \
	"\t-H login_host\tLog login_host into the utmp file as the hostname"


#define grep_trivial_usage \
	"[-ihHnqvs] PATTERN [FILEs...]"
#define grep_full_usage \
	"Search for PATTERN in each FILE or standard input.\n\n" \
	"Options:\n" \
	"\t-H\tprefix output lines with filename where match was found\n" \
	"\t-h\tsuppress the prefixing filename on output\n" \
	"\t-i\tignore case distinctions\n" \
	"\t-l\tlist names of files that match\n" \
	"\t-n\tprint line number with output lines\n" \
	"\t-q\tbe quiet. Returns 0 if result was found, 1 otherwise\n" \
	"\t-v\tselect non-matching lines\n" \
	"\t-s\tsuppress file open/read error messages"
#define grep_example_usage \
	"$ grep root /etc/passwd\n" \
	"root:x:0:0:root:/root:/bin/bash\n" \
	"$ grep ^[rR]oo. /etc/passwd\n" \
	"root:x:0:0:root:/root:/bin/bash\n"

#define gunzip_trivial_usage \
	"[OPTION]... FILE"
#define gunzip_full_usage \
	"Uncompress FILE (or standard input if FILE is '-').\n\n" \
	"Options:\n" \
	"\t-c\tWrite output to standard output\n" \
	"\t-f\tForce read when source is a terminal\n" \
	"\t-t\tTest compressed file integrity"
#define gunzip_example_usage \
	"$ ls -la /tmp/BusyBox*\n" \
	"-rw-rw-r--    1 andersen andersen   557009 Apr 11 10:55 /tmp/BusyBox-0.43.tar.gz\n" \
	"$ gunzip /tmp/BusyBox-0.43.tar.gz\n" \
	"$ ls -la /tmp/BusyBox*\n" \
	"-rw-rw-r--    1 andersen andersen  1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar\n"

#define gzip_trivial_usage \
	"[OPTION]... [FILE]..."
#define gzip_full_usage \
	"Compress FILE(s) with maximum compression.\n" \
	"When FILE is '-' or unspecified, reads standard input.  Implies -c.\n\n" \
	"Options:\n" \
	"\t-c\tWrite output to standard output instead of FILE.gz\n" \
	"\t-d\tDecompress\n" \
	"\t-f\tForce write when destination is a terminal"
#define gzip_example_usage \
	"$ ls -la /tmp/busybox*\n" \
	"-rw-rw-r--    1 andersen andersen  1761280 Apr 14 17:47 /tmp/busybox.tar\n" \
	"$ gzip /tmp/busybox.tar\n" \
	"$ ls -la /tmp/busybox*\n" \
	"-rw-rw-r--    1 andersen andersen   554058 Apr 14 17:49 /tmp/busybox.tar.gz\n"

#define halt_trivial_usage \
	"[-d<delay>]"
#define halt_full_usage \
	"Halt the system.\n" \
	"Options:\n" \
	"\t-d\t\tdelay interval for halting"

#ifdef CONFIG_FEATURE_HDPARM_GET_IDENTITY
#define USAGE_HDPARM_IDENT(a) a
#else
#define USAGE_HDPARM_IDENT(a)
#endif

#ifdef CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF
#define USAGE_SCAN_HWIF(a) a
#else
#define USAGE_SCAN_HWIF(a)
#endif

#ifdef CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF
#define USAGE_UNREGISTER_HWIF(a) a
#else
#define USAGE_UNREGISTER_HWIF(a)
#endif

#ifdef CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET
#define USAGE_DRIVE_RESET(a) a
#else
#define USAGE_DRIVE_RESET(a)
#endif

#ifdef CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF
#define USAGE_TRISTATE_HWIF(a) a
#else
#define USAGE_TRISTATE_HWIF(a)
#endif

#ifdef CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA
#define USAGE_GETSET_DMA(a) a
#else
#define USAGE_GETSET_DMA(a)
#endif

#define hdparm_trivial_usage \
	"[options] [device] .."
#define hdparm_full_usage \
	"Options:" \
	"\t-a   get/set fs readahead\n" \
	"\t-A   set drive read-lookahead flag (0/1)\n" \
	"\t-b   get/set bus state (0 == off, 1 == on, 2 == tristate)\n" \
	"\t-B   set Advanced Power Management setting (1-255)\n" \
	"\t-c   get/set IDE 32-bit IO setting\n" \
	"\t-C   check IDE power mode status\n" \
	USAGE_GETSET_DMA("\t-d   get/set using_dma flag\n") \
	"\t-D   enable/disable drive defect-mgmt\n" \
	"\t-f   flush buffer cache for device on exit\n" \
	"\t-g   display drive geometry\n" \
	"\t-h   display terse usage information\n" \
	"\t-i   display drive identification\n" \
	USAGE_HDPARM_IDENT("\t-I   detailed/current information directly from drive\n") \
	USAGE_HDPARM_IDENT("\t-Istdin  similar to -I, but wants /proc/ide/" "*" "/hd?/identify as input\n") \
	"\t-k   get/set keep_settings_over_reset flag (0/1)\n" \
	"\t-K   set drive keep_features_over_reset flag (0/1)\n" \
	"\t-L   set drive doorlock (0/1) (removable harddisks only)\n" \
	"\t-m   get/set multiple sector count\n" \
	"\t-n   get/set ignore-write-errors flag (0/1)\n" \
	"\t-p   set PIO mode on IDE interface chipset (0,1,2,3,4,...)\n" \
	"\t-P   set drive prefetch count\n" \
	"\t-q   change next setting quietly\n" \
	"\t-Q   get/set DMA tagged-queuing depth (if supported)\n" \
	"\t-r   get/set readonly flag (DANGEROUS to set)\n" \
	USAGE_SCAN_HWIF("\t-R   register an IDE interface (DANGEROUS)\n") \
	"\t-S   set standby (spindown) timeout\n" \
	"\t-t   perform device read timings\n" \
	"\t-T   perform cache read timings\n" \
	"\t-u   get/set unmaskirq flag (0/1)\n" \
	USAGE_UNREGISTER_HWIF("\t-U   un-register an IDE interface (DANGEROUS)\n") \
	"\t-v   defaults; same as -mcudkrag for IDE drives\n" \
	"\t-V   display program version and exit immediately\n" \
	USAGE_DRIVE_RESET("\t-w   perform device reset (DANGEROUS)\n") \
	"\t-W   set drive write-caching flag (0/1) (DANGEROUS)\n" \
	USAGE_TRISTATE_HWIF("\t-x   tristate device for hotswap (0/1) (DANGEROUS)\n") \
	"\t-X   set IDE xfer mode (DANGEROUS)\n" \
	"\t-y   put IDE drive in standby mode\n" \
	"\t-Y   put IDE drive to sleep\n" \
	"\t-Z   disable Seagate auto-powersaving mode\n" \
	"\t-z   re-read partition table"

#ifdef CONFIG_FEATURE_FANCY_HEAD
#define USAGE_FANCY_HEAD(a) a
#else
#define USAGE_FANCY_HEAD(a)
#endif

#define head_trivial_usage \
	"[OPTION]... [FILE]..."
#define head_full_usage \
	"Print first 10 lines of each FILE to standard output.\n" \
	"With more than one FILE, precede each with a header giving the\n" \
	"file name. With no FILE, or when FILE is -, read standard input.\n\n" \
	"Options:\n" \
	"\t-n NUM\t\tPrint first NUM lines instead of first 10" \
	USAGE_FANCY_HEAD( \
	"\n\t-c NUM\t\toutput the first NUM bytes\n" \
	"\t-q\t\tnever output headers giving file names\n" \
	"\t-v\t\talways output headers giving file names" )
#define head_example_usage \
	"$ head -n 2 /etc/passwd\n" \
	"root:x:0:0:root:/root:/bin/bash\n" \
	"daemon:x:1:1:daemon:/usr/sbin:/bin/sh\n"

#define hexdump_trivial_usage \
	"[-[bcdefnosvx]] [OPTION] FILE"
#define hexdump_full_usage \
	"The hexdump utility is a filter which displays the specified files,\n" \
	"or the standard input, if no files are specified, in a user specified\n" \
	"format\n" \
	"\t-b\t\tOne-byte octal display\n" \
	"\t-c\t\tOne-byte character display\n" \
	"\t-d\t\tTwo-byte decimal display\n" \
	"\t-e FORMAT STRING\n" \
	"\t-f FORMAT FILE\n" \
	"\t-n LENGTH\tInterpret only length bytes of input\n" \
	"\t-o\t\tTwo-byte octal display\n" \
	"\t-s OFFSET\tSkip offset byte\n" \
	"\t-v\t\tdisplay all input data\n" \
	"\t-x\t\tTwo-byte hexadecimal display"

#define hostid_trivial_usage \
	""
#define hostid_full_usage \
	"Print out a unique 32-bit identifier for the machine."

#define hostname_trivial_usage \
	"[OPTION] {hostname | -F FILE}"
#define hostname_full_usage \
	"Get or set the hostname or DNS domain name. If a hostname is given\n" \
	"(or FILE with the -F parameter), the host name will be set.\n\n" \
	"Options:\n" \
	"\t-s\tShort\n" \
	"\t-i\tAddresses for the hostname\n" \
	"\t-d\tDNS domain name\n" \
	"\t-f\tFully qualified domain name\n" \
	"\t-F FILE\tUse the contents of FILE to specify the hostname"
#define hostname_example_usage \
	"$ hostname\n" \
	"sage\n"

#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
#  define USAGE_HTTPD_BASIC_AUTH(a) a
#  ifdef CONFIG_FEATURE_HTTPD_AUTH_MD5
#    define USAGE_HTTPD_AUTH_MD5(a) a
#  else
#    define USAGE_HTTPD_AUTH_MD5(a)
#  endif
#else
#  define USAGE_HTTPD_BASIC_AUTH(a)
#  define USAGE_HTTPD_AUTH_MD5(a)
#endif
#ifdef CONFIG_FEATURE_HTTPD_USAGE_FROM_INETD_ONLY
#  define USAGE_HTTPD_STANDALONE(a)
#  define USAGE_HTTPD_SETUID(a)
#else
#  define USAGE_HTTPD_STANDALONE(a) a
#  ifdef CONFIG_FEATURE_HTTPD_SETUID
#    define USAGE_HTTPD_SETUID(a) a
#  else
#    define USAGE_HTTPD_SETUID(a)
#  endif
#endif
#define httpd_trivial_usage \
	"[-c <conf file>]" \
	USAGE_HTTPD_STANDALONE(" [-p <port>]") \
	USAGE_HTTPD_SETUID(" [-u user]") \
	USAGE_HTTPD_BASIC_AUTH(" [-r <realm>]") \
	USAGE_HTTPD_AUTH_MD5(" [-m pass]") \
	" [-h home]" \
	" [-d/-e <string>]"
#define httpd_full_usage \
	"Listens for incoming http server requests.\n\n" \
	"Options:\n" \
	"\t-c FILE\t\tSpecifies configuration file. (default httpd.conf)\n" \
	USAGE_HTTPD_STANDALONE("\t-p PORT\tServer port (default 80)\n") \
	USAGE_HTTPD_SETUID("\t-u USER\tSet uid to USER after listening privileges port\n") \
	USAGE_HTTPD_BASIC_AUTH("\t-r REALM\tAuthentication Realm for Basic Authentication\n") \
	USAGE_HTTPD_AUTH_MD5("\t-m PASS\t\tCrypt PASS with md5 algorithm\n") \
	"\t-h HOME  \tSpecifies http HOME directory (default ./)\n" \
	"\t-e STRING\tHtml encode STRING\n" \
	"\t-d STRING\tURL decode STRING"

#define hwclock_trivial_usage \
	"[-r|--show] [-s|--hctosys] [-w|--systohc] [-l|--localtime] [-u|--utc]"
#define hwclock_full_usage \
	"Query and set the hardware clock (RTC)\n\n" \
	"Options:\n" \
	"\t-r\tread hardware clock and print result\n" \
	"\t-s\tset the system time from the hardware clock\n" \
	"\t-w\tset the hardware clock to the current system time\n" \
	"\t-u\tthe hardware clock is kept in coordinated universal time\n" \
	"\t-l\tthe hardware clock is kept in local time"

#ifdef CONFIG_SELINUX
#  define USAGE_SELINUX(a) a
#else
#  define USAGE_SELINUX(a)
#endif

#define id_trivial_usage \
	"[OPTIONS]... [USERNAME]"
#define id_full_usage \
	"Print information for USERNAME or the current user\n\n" \
	"Options:\n" \
	USAGE_SELINUX("\t-c\tprints only the security context\n") \
	"\t-g\tprints only the group ID\n" \
	"\t-u\tprints only the user ID\n" \
	"\t-n\tprint a name instead of a number\n" \
	"\t-r\tprints the real user ID instead of the effective ID"
#define id_example_usage \
	"$ id\n" \
	"uid=1000(andersen) gid=1000(andersen)\n"

#ifdef CONFIG_FEATURE_IFCONFIG_SLIP
#  define USAGE_SIOCSKEEPALIVE(a) a
#else
#  define USAGE_SIOCSKEEPALIVE(a)
#endif
#ifdef CONFIG_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ
#  define USAGE_IFCONFIG_MII(a) a
#else
#  define USAGE_IFCONFIG_MII(a)
#endif
#ifdef CONFIG_FEATURE_IFCONFIG_HW
#  define USAGE_IFCONFIG_HW(a) a
#else
#  define USAGE_IFCONFIG_HW(a)
#endif
#ifdef CONFIG_FEATURE_IFCONFIG_STATUS
#  define USAGE_IFCONFIG_OPT_A(a) a
#else
#  define USAGE_IFCONFIG_OPT_A(a)
#endif
#ifdef CONFIG_FEATURE_IPV6
#  define USAGE_IPV6(a) a
#else
#  define USAGE_IPV6(a)
#endif

#define ifconfig_trivial_usage \
	USAGE_IFCONFIG_OPT_A("[-a]") " <interface> [<address>]"
#define ifconfig_full_usage \
	"configure a network interface\n\n" \
	"Options:\n" \
	USAGE_IPV6("[add <address>[/<prefixlen>]]\n") \
	USAGE_IPV6("[del <address>[/<prefixlen>]]\n") \
	"\t[[-]broadcast [<address>]]  [[-]pointopoint [<address>]]\n" \
	"\t[netmask <address>]  [dstaddr <address>]\n" \
	USAGE_SIOCSKEEPALIVE("\t[outfill <NN>] [keepalive <NN>]\n") \
	"\t" USAGE_IFCONFIG_HW("[hw ether <address>]  ") \
	"[metric <NN>]  [mtu <NN>]\n" \
	"\t[[-]trailers]  [[-]arp]  [[-]allmulti]\n" \
	"\t[multicast]  [[-]promisc]  [txqueuelen <NN>]  [[-]dynamic]\n" \
	USAGE_IFCONFIG_MII("\t[mem_start <NN>]  [io_addr <NN>]  [irq <NN>]\n") \
	"\t[up|down] ..."

#define ifup_trivial_usage \
	"<-ahinv> <ifaces...>"
#define ifup_full_usage \
	"ifup <options> <ifaces...>\n\n" \
	"Options:\n" \
	"\t-h\tthis help\n" \
	"\t-a\tde/configure all interfaces automatically\n" \
	"\t-i FILE\tuse FILE for interface definitions\n" \
	"\t-n\tprint out what would happen, but don't do it\n" \
	"\t\t\t(note that this option doesn't disable mappings)\n" \
	"\t-v\tprint out what would happen before doing it\n" \
	"\t-m\tdon't run any mappings\n" \
	"\t-f\tforce de/configuration"

#define ifdown_trivial_usage \
	"<-ahinv> <ifaces...>"
#define ifdown_full_usage \
	"ifdown <options> <ifaces...>\n\n" \
	"Options:\n" \
	"\t-h\tthis help\n" \
	"\t-a\tde/configure all interfaces automatically\n" \
	"\t-i FILE\tuse FILE for interface definitions\n" \
	"\t-n\tprint out what would happen, but don't do it\n" \
	"\t\t(note that this option doesn't disable mappings)\n" \
	"\t-v\tprint out what would happen before doing it\n" \
	"\t-m\tdon't run any mappings\n" \
	"\t-f\tforce de/configuration"

#define inetd_trivial_usage \
	"[-f] [-q len] [conf]"
#define inetd_full_usage \
	"Listens for network connections and launches programs\n\n" \
	"Option:\n" \
	"\t-f\tRun as a foreground progress\n" \
	"\t-q\tSets the size of the socket listen queue to\n" \
	"\t\tthe specified value. Default is 128"

#define init_trivial_usage \
	""
#define init_full_usage \
	"Init is the parent of all processes."
#define init_notes_usage \
"This version of init is designed to be run only by the kernel.\n" \
"\n" \
"BusyBox init doesn't support multiple runlevels.  The runlevels field of\n" \
"the /etc/inittab file is completely ignored by BusyBox init. If you want \n" \
"runlevels, use sysvinit.\n" \
"\n" \
"BusyBox init works just fine without an inittab.  If no inittab is found, \n" \
"it has the following default behavior:\n" \
"\n" \
"	::sysinit:/etc/init.d/rcS\n" \
"	::askfirst:/bin/sh\n" \
"	::ctrlaltdel:/sbin/reboot\n" \
"	::shutdown:/sbin/swapoff -a\n" \
"	::shutdown:/bin/umount -a -r\n" \
"	::restart:/sbin/init\n" \
"\n" \
"if it detects that /dev/console is _not_ a serial console, it will also run:\n" \
"\n" \
"	tty2::askfirst:/bin/sh\n" \
"	tty3::askfirst:/bin/sh\n" \
"	tty4::askfirst:/bin/sh\n" \
"\n" \
"If you choose to use an /etc/inittab file, the inittab entry format is as follows:\n" \
"\n" \
"	<id>:<runlevels>:<action>:<process>\n" \
"\n" \
"	<id>:\n" \
"\n" \
"		WARNING: This field has a non-traditional meaning for BusyBox init!\n" \
"		The id field is used by BusyBox init to specify the controlling tty for\n" \
"		the specified process to run on.  The contents of this field are\n" \
"		appended to \"/dev/\" and used as-is.  There is no need for this field to\n" \
"		be unique, although if it isn't you may have strange results.  If this\n" \
"		field is left blank, the controlling tty is set to the console.  Also\n" \
"		note that if BusyBox detects that a serial console is in use, then only\n" \
"		entries whose controlling tty is either the serial console or /dev/null\n" \
"		will be run.  BusyBox init does nothing with utmp.  We don't need no\n" \
"		stinkin' utmp.\n" \
"\n" \
"	<runlevels>:\n" \
"\n" \
"		The runlevels field is completely ignored.\n" \
"\n" \
"	<action>:\n" \
"\n" \
"		Valid actions include: sysinit, respawn, askfirst, wait,\n" \
"		once, restart, ctrlaltdel, and shutdown.\n" \
"\n" \
"		The available actions can be classified into two groups: actions\n" \
"		that are run only once, and actions that are re-run when the specified\n" \
"		process exits.\n" \
"\n" \
"		Run only-once actions:\n" \
"\n" \
"			'sysinit' is the first item run on boot.  init waits until all\n" \
"			sysinit actions are completed before continuing.  Following the\n" \
"			completion of all sysinit actions, all 'wait' actions are run.\n" \
"			'wait' actions, like  'sysinit' actions, cause init to wait until\n" \
"			the specified task completes.  'once' actions are asynchronous,\n" \
"			therefore, init does not wait for them to complete.  'restart' is\n" \
"			the action taken to restart the init process.  By default this should\n" \
"			simply run /sbin/init, but can be a script which runs pivot_root or it\n" \
"			can do all sorts of other interesting things.  The 'ctrlaltdel' init\n" \
"			actions are run when the system detects that someone on the system\n" \
"                       console has pressed the CTRL-ALT-DEL key combination.  Typically one\n" \
"                       wants to run 'reboot' at this point to cause the system to reboot.\n" \
"			Finally the 'shutdown' action specifies the actions to taken when\n" \
"                       init is told to reboot.  Unmounting filesystems and disabling swap\n" \
"                       is a very good here\n" \
"\n" \
"		Run repeatedly actions:\n" \
"\n" \
"			'respawn' actions are run after the 'once' actions.  When a process\n" \
"			started with a 'respawn' action exits, init automatically restarts\n" \
"			it.  Unlike sysvinit, BusyBox init does not stop processes from\n" \
"			respawning out of control.  The 'askfirst' actions acts just like\n" \
"			respawn, except that before running the specified process it\n" \
"			displays the line \"Please press Enter to activate this console.\"\n" \
"			and then waits for the user to press enter before starting the\n" \
"			specified process.\n" \
"\n" \
"		Unrecognized actions (like initdefault) will cause init to emit an\n" \
"		error message, and then go along with its business.  All actions are\n" \
"		run in the order they appear in /etc/inittab.\n" \
"\n" \
"	<process>:\n" \
"\n" \
"		Specifies the process to be executed and its command line.\n" \
"\n" \
"Example /etc/inittab file:\n" \
"\n" \
"	# This is run first except when booting in single-user mode.\n" \
"	#\n" \
"	::sysinit:/etc/init.d/rcS\n" \
"	\n" \
"	# /bin/sh invocations on selected ttys\n" \
"	#\n" \
"	# Start an \"askfirst\" shell on the console (whatever that may be)\n" \
"	::askfirst:-/bin/sh\n" \
"	# Start an \"askfirst\" shell on /dev/tty2-4\n" \
"	tty2::askfirst:-/bin/sh\n" \
"	tty3::askfirst:-/bin/sh\n" \
"	tty4::askfirst:-/bin/sh\n" \
"	\n" \
"	# /sbin/getty invocations for selected ttys\n" \
"	#\n" \
"	tty4::respawn:/sbin/getty 38400 tty4\n" \
"	tty5::respawn:/sbin/getty 38400 tty5\n" \
"	\n" \
"	\n" \
"	# Example of how to put a getty on a serial line (for a terminal)\n" \
"	#\n" \
"	#::respawn:/sbin/getty -L ttyS0 9600 vt100\n" \
"	#::respawn:/sbin/getty -L ttyS1 9600 vt100\n" \
"	#\n" \
"	# Example how to put a getty on a modem line.\n" \
"	#::respawn:/sbin/getty 57600 ttyS2\n" \
"	\n" \
"	# Stuff to do when restarting the init process\n" \
"	::restart:/sbin/init\n" \
"	\n" \
"	# Stuff to do before rebooting\n" \
"	::ctrlaltdel:/sbin/reboot\n" \
"	::shutdown:/bin/umount -a -r\n" \
"	::shutdown:/sbin/swapoff -a\n"

#ifdef CONFIG_FEATURE_INSMOD_LOAD_MAP
#  define USAGE_INSMOD_MAP(a) a
#else
#  define USAGE_INSMOD_MAP(a)
#endif
#define insmod_trivial_usage \
	"[OPTION]... MODULE [symbol=value]..."
#define insmod_full_usage \
	"Loads the specified kernel modules into the kernel.\n\n" \
	"Options:\n" \
	"\t-f\tForce module to load into the wrong kernel version\n" \
	"\t-k\tMake module autoclean-able\n" \
	"\t-v\tverbose output\n"  \
	"\t-q\tquiet output\n" \
	"\t-L\tLock to prevent simultaneous loads of a module\n" \
	USAGE_INSMOD_MAP("\t-m\tOutput load map to stdout\n") \
	"\t-o NAME\tSet internal module name to NAME\n" \
	"\t-x\tdo not export externs"

#define install_trivial_usage \
	"[-cgmops] [sources] <dest|directory>"
#define install_full_usage \
	"Copies files and set attributes\n\n" \
	"Options:\n" \
	"\t-c\tcopy the file, default\n" \
	"\t-d\tcreate directories\n" \
	"\t-g\tset group ownership\n" \
	"\t-m\tset permission modes\n" \
	"\t-o\tset ownership\n" \
	"\t-p\tpreserve date\n" \
	"\t-s\tstrip symbol tables"

#define ip_trivial_usage \
	"[ OPTIONS ] { address | link | route | tunnel } { COMMAND | help }"
#define ip_full_usage \
	"ip [ OPTIONS ] OBJECT { COMMAND | help }\n" \
	"where  OBJECT := { link | addr | route | tunnel }\n" \
	"OPTIONS := { -f[amily] { inet | inet6 | link } | -o[neline] }"

#define ipaddr_trivial_usage \
	"{ {add|del} IFADDR dev STRING | {show|flush}\n" \
	"\t\t[ dev STRING ] [ to PREFIX ] }"
#define ipaddr_full_usage \
	"ipaddr {add|del} IFADDR dev STRING\n" \
	"ipaddr {show|flush} [ dev STRING ] [ scope SCOPE-ID ]\n" \
	"\t\t\t[ to PREFIX ] [ label PATTERN ]\n" \
	"\t\t\tIFADDR := PREFIX | ADDR peer PREFIX\n" \
	"\t\t\t[ broadcast ADDR ] [ anycast ADDR ]\n" \
	"\t\t\t[ label STRING ] [ scope SCOPE-ID ]\n" \
	"\t\t\tSCOPE-ID := [ host | link | global | NUMBER ]"

#ifdef CONFIG_FEATURE_IPCALC_FANCY
#  define XUSAGE_IPCALC_FANCY(a) a
#else
#  define XUSAGE_IPCALC_FANCY(a)
#endif
#define ipcalc_trivial_usage \
	"[OPTION]... <ADDRESS>[[/]<NETMASK>] [NETMASK]"
#define ipcalc_full_usage \
	"Calculate IP network settings from a IP address\n\n" \
	"Options:\n" \
	"\t-b\t--broadcast\tDisplay calculated broadcast address\n" \
	"\t-n\t--network\tDisplay calculated network address\n" \
	"\t-m\t--netmask\tDisplay default netmask for IP." \
	XUSAGE_IPCALC_FANCY( \
	"\n\t-p\t--prefix\tDisplay the prefix for IP/NETMASK." \
	"\t-h\t--hostname\tDisplay first resolved host name\n" \
	"\t-s\t--silent\tDon't ever display error messages.")

#define ipcrm_trivial_usage \
	"[-[MQS] key] [-[mqs] id]"
#define ipcrm_full_usage \
	"The upper-case options MQS are used to remove a shared memory\n" \
	"segment by an shmkey value. The lower-case options mqs are used\n" \
	"to remove a segment by shmid value.\n" \
	"\t-m | -M\tRemove the memory segment after the last detatch\n" \
	"\t-q | -Q\tRemove the message queue\n" \
	"\t-s | -S\tRemove the semaphore\n"

#define ipcs_trivial_usage \
	"[[-smq] -i shmid] | [[-asmq] [-tclup]]"
#define ipcs_full_usage \
	"\t-i\tspecify a specific resource id\n" \
	"Resource specification:\n" \
	"\t-m\tshared memory segments\n" \
	"\t-q\tmessage queues\n" \
	"\t-s\tsempahore arrays\n" \
	"\t-a\tall (default)\n" \
	"Output format:\n" \
	"\t-t\ttime\n" \
	"\t-p\tpid\n" \
	"\t-s\tcreator\n" \
	"\t-a\tlimits\n" \
	"\t-i\tsummary\n"

#define iplink_trivial_usage \
	"{ set DEVICE { up | down | arp { on | off } | show [ DEVICE ] }"
#define iplink_full_usage \
	"iplink set DEVICE { up | down | arp { on | off } |\n" \
	"\t\t\tdynamic { on | off } |\n" \
	"\t\t\tmtu MTU }\n" \
	"\tiplink show [ DEVICE ]"

#define iproute_trivial_usage \
	"{ list | flush | { add | del | change | append |\n" \
	"\t\treplace | monitor } ROUTE }"
#define iproute_full_usage \
	"iproute { list | flush } SELECTOR\n" \
	"iproute get ADDRESS [ from ADDRESS iif STRING ]\n" \
	"\t\t\t[ oif STRING ]  [ tos TOS ]\n" \
	"\tiproute { add | del | change | append | replace | monitor } ROUTE\n" \
	"\t\t\tSELECTOR := [ root PREFIX ] [ match PREFIX ] [ proto RTPROTO ]\n" \
	"\t\t\tROUTE := [ TYPE ] PREFIX [ tos TOS ] [ proto RTPROTO ]"

#define iptunnel_trivial_usage \
	"{ add | change | del | show } [ NAME ]\n" \
	"\t\t[ mode { ipip | gre | sit } ]\n" \
	"\t\t[ remote ADDR ] [ local ADDR ] [ ttl TTL ]"
#define iptunnel_full_usage \
	"iptunnel { add | change | del | show } [ NAME ]\n" \
	"\t\t\t[ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" \
	"\t\t\t[ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" \
	"\t\t\t[ ttl TTL ] [ tos TOS ] [ [no]pmtudisc ] [ dev PHYS_DEV ]"

#define kill_trivial_usage \
	"[-signal] process-id [process-id ...]"
#define kill_full_usage \
	"Send a signal (default is SIGTERM) to the specified process(es).\n\n" \
	"Options:\n" \
	"\t-l\tList all signal names and numbers"
#define kill_example_usage \
	"$ ps | grep apache\n" \
	"252 root     root     S [apache]\n" \
	"263 www-data www-data S [apache]\n" \
	"264 www-data www-data S [apache]\n" \
	"265 www-data www-data S [apache]\n" \
	"266 www-data www-data S [apache]\n" \
	"267 www-data www-data S [apache]\n" \
	"$ kill 252\n"

#define killall_trivial_usage \
	"[-q] [-signal] process-name [process-name ...]"
#define killall_full_usage \
	"Send a signal (default is SIGTERM) to the specified process(es).\n\n" \
	"Options:\n" \
	"\t-l\tList all signal names and numbers\n" \
	"\t-q\tDo not complain if no processes were killed"
#define killall_example_usage \
	"$ killall apache\n"

#define klogd_trivial_usage \
	"[-c n] [-n]"
#define klogd_full_usage \
	"Kernel logger.\n" \
	"Options:\n" \
	"\t-c n\tSets the default log level of console messages to n\n" \
	"\t-n\tRun as a foreground process"

#define length_trivial_usage \
	"STRING"
#define length_full_usage \
	"Prints out the length of the specified STRING."
#define length_example_usage \
	"$ length Hello\n" \
	"5\n"

#define ln_trivial_usage \
	"[OPTION] TARGET... LINK_NAME|DIRECTORY"
#define ln_full_usage \
	"Create a link named LINK_NAME or DIRECTORY to the specified TARGET\n" \
	"\nYou may use '--' to indicate that all following arguments are non-options.\n\n" \
	"Options:\n" \
	"\t-s\tmake symbolic links instead of hard links\n" \
	"\t-f\tremove existing destination files\n" \
	"\t-n\tno dereference symlinks - treat like normal file\n" \
	"\t-b\tmake a backup of the target (if exists) before link operation\n" \
	"\t-S suffix\tuse suffix instead of ~ when making backup files"
#define ln_example_usage \
	"$ ln -s BusyBox /tmp/ls\n" \
	"$ ls -l /tmp/ls\n" \
	"lrwxrwxrwx    1 root     root            7 Apr 12 18:39 ls -> BusyBox*\n"

#define loadfont_trivial_usage \
	"< font"
#define loadfont_full_usage \
	"Loads a console font from standard input."
#define loadfont_example_usage \
	"$ loadfont < /etc/i18n/fontname\n"

#define loadkmap_trivial_usage \
	"< keymap"
#define loadkmap_full_usage \
	"Loads a binary keyboard translation table from standard input."
#define loadkmap_example_usage \
	"$ loadkmap < /etc/i18n/lang-keymap\n"

#define logger_trivial_usage \
	"[OPTION]... [MESSAGE]"
#define logger_full_usage \
	"Write MESSAGE to the system log.  If MESSAGE is omitted, log stdin.\n\n" \
	"Options:\n" \
	"\t-s\tLog to stderr as well as the system log\n" \
	"\t-t TAG\tLog using the specified tag (defaults to user name)\n" \
	"\t-p PRIORITY\tEnter the message with the specified priority\n" \
	"\t\tThis may be numerical or a ``facility.level'' pair"
#define logger_example_usage \
	"$ logger \"hello\"\n"

#define login_trivial_usage \
	"[OPTION]... [username] [ENV=VAR ...]"
#define login_full_usage \
	"Begin a new session on the system\n\n" \
	"Options:\n" \
	"\t-f\tDo not authenticate (user already authenticated)\n" \
	"\t-h\tName of the remote host for this login\n" \
	"\t-p\tPreserve environment"

#define logname_trivial_usage \
	""
#define logname_full_usage \
	"Print the name of the current user."
#define logname_example_usage \
	"$ logname\n" \
	"root\n"

#define logread_trivial_usage \
	"[OPTION]..."
#define logread_full_usage \
	"Shows the messages from syslogd (using circular buffer).\n\n" \
	"Options:\n" \
	"\t-f\t\toutput data as the log grows"

#define losetup_trivial_usage \
	"[OPTION]... LOOPDEVICE FILE\n" \
	"or: losetup [OPTION]... -d LOOPDEVICE"
#define losetup_full_usage \
	"Associate LOOPDEVICE with FILE.\n\n" \
	"Options:\n" \
	"\t-d\t\tDisassociate LOOPDEVICE\n" \
	"\t-o OFFSET\tStart OFFSET bytes into FILE"

#ifdef CONFIG_FEATURE_LS_TIMESTAMPS
#  define USAGE_LS_TIMESTAMPS(a) a
#else
#  define USAGE_LS_TIMESTAMPS(a)
#endif
#ifdef CONFIG_FEATURE_LS_FILETYPES
#  define USAGE_LS_FILETYPES(a) a
#else
#  define USAGE_LS_FILETYPES(a)
#endif
#ifdef CONFIG_FEATURE_LS_FOLLOWLINKS
#  define USAGE_LS_FOLLOWLINKS(a) a
#else
#  define USAGE_LS_FOLLOWLINKS(a)
#endif
#ifdef CONFIG_FEATURE_LS_RECURSIVE
#  define USAGE_LS_RECURSIVE(a) a
#else
#  define USAGE_LS_RECURSIVE(a)
#endif
#ifdef CONFIG_FEATURE_LS_SORTFILES
#  define USAGE_LS_SORTFILES(a) a
#else
#  define USAGE_LS_SORTFILES(a)
#endif
#ifdef CONFIG_FEATURE_AUTOWIDTH
#  define USAGE_AUTOWIDTH(a) a
#else
#  define USAGE_AUTOWIDTH(a)
#endif
#ifdef CONFIG_FEATURE_LS_COLOR
  #define USAGE_LS_COLOR(a) a
#else
  #define USAGE_LS_COLOR(a)
#endif

#define ls_trivial_usage \
	"[-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") USAGE_NOT_HUMAN_READABLE("") "k" USAGE_SELINUX("K") "] [filenames...]"
#define ls_full_usage \
	"List directory contents\n\n" \
	"Options:\n" \
	"\t-1\tlist files in a single column\n" \
	"\t-A\tdo not list implied . and ..\n" \
	"\t-a\tdo not hide entries starting with .\n" \
	"\t-C\tlist entries by columns\n" \
	USAGE_LS_TIMESTAMPS("\t-c\twith -l: show ctime\n") \
	USAGE_LS_COLOR("\t--color[={always,never,auto}]\tto control coloring\n") \
	"\t-d\tlist directory entries instead of contents\n" \
	USAGE_LS_TIMESTAMPS("\t-e\tlist both full date and full time\n") \
	USAGE_LS_FILETYPES("\t-F\tappend indicator (one of */=@|) to entries\n") \
	"\t-i\tlist the i-node for each file\n" \
	"\t-l\tuse a long listing format\n" \
	"\t-n\tlist numeric UIDs and GIDs instead of names\n" \
	USAGE_LS_FILETYPES("\t-p\tappend indicator (one of /=@|) to entries\n") \
	USAGE_LS_FOLLOWLINKS("\t-L\tlist entries pointed to by symbolic links\n") \
	USAGE_LS_RECURSIVE("\t-R\tlist subdirectories recursively\n") \
	USAGE_LS_SORTFILES("\t-r\tsort the listing in reverse order\n") \
	USAGE_LS_SORTFILES("\t-S\tsort the listing by file size\n") \
	"\t-s\tlist the size of each file, in blocks\n" \
	USAGE_AUTOWIDTH("\t-T NUM\tassume Tabstop every NUM columns\n") \
	USAGE_LS_TIMESTAMPS("\t-t\twith -l: show modification time\n") \
	USAGE_LS_TIMESTAMPS("\t-u\twith -l: show access time\n") \
	USAGE_LS_SORTFILES("\t-v\tsort the listing by version\n") \
	USAGE_AUTOWIDTH("\t-w NUM\tassume the terminal is NUM columns wide\n") \
	"\t-x\tlist entries by lines instead of by columns\n" \
	USAGE_LS_SORTFILES("\t-X\tsort the listing by extension\n") \
	USAGE_HUMAN_READABLE( \
	"\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n") \
	USAGE_SELINUX("\t-k\tprint security context\n") \
	USAGE_SELINUX("\t-K\tprint security context in long format\n")

#define lsattr_trivial_usage \
	"[-Radlv] [files...]"
#define lsattr_full_usage \
	"list file attributes on an ext2 fs\n\n" \
	"Options:\n" \
	"\t-R\trecursively list subdirectories\n" \
	"\t-a\tdo not hide entries starting with .\n" \
	"\t-d\tlist directory entries instead of contents\n" \
	"\t-l\tprint long flag names\n" \
	"\t-v\tlist the file's version/generation number"

#define lsmod_trivial_usage \
	""
#define lsmod_full_usage \
	"List the currently loaded kernel modules."

#ifdef CONFIG_FEATURE_MAKEDEVS_LEAF
#define makedevs_trivial_usage \
	"NAME TYPE MAJOR MINOR FIRST LAST [s]"
#define makedevs_full_usage \
	"Creates a range of block or character special files\n\n" \
	"TYPEs include:\n" \
	"\tb:\tMake a block (buffered) device.\n" \
	"\tc or u:\tMake a character (un-buffered) device.\n" \
	"\tp:\tMake a named pipe. MAJOR and MINOR are ignored for named pipes.\n\n" \
	"FIRST specifies the number appended to NAME to create the first device.\n" \
	"LAST specifies the number of the last item that should be created\n" \
	"If 's' is the last argument, the base device is created as well.\n\n" \
	"For example:\n" \
	"\tmakedevs /dev/ttyS c 4 66 2 63   ->  ttyS2-ttyS63\n" \
	"\tmakedevs /dev/hda b 3 0 0 8 s    ->  hda,hda1-hda8"
#define makedevs_example_usage \
	"# makedevs /dev/ttyS c 4 66 2 63\n" \
	"[creates ttyS2-ttyS63]\n" \
	"# makedevs /dev/hda b 3 0 0 8 s\n" \
	"[creates hda,hda1-hda8]\n"
#endif

#ifdef CONFIG_FEATURE_MAKEDEVS_TABLE
#define makedevs_trivial_usage \
	"[-d device_table] rootdir"
#define makedevs_full_usage \
	"Creates a range of special files as specified in a device table.\n" \
	"Device table entries take the form of:\n" \
	"<type> <mode> <uid> <gid> <major> <minor> <start> <inc> <count>\n" \
	"Where name is the file name,  type can be one of:\n" \
	"      f       A regular file\n" \
	"      d       Directory\n" \
	"      c       Character special device file\n" \
	"      b       Block special device file\n" \
	"      p       Fifo (named pipe)\n" \
	"uid is the user id for the target file, gid is the group id for the\n" \
	"target file.  The rest of the entries (major, minor, etc) apply to\n" \
	"to device special files.  A '-' may be used for blank entries."
#define makedevs_example_usage \
	"For example:\n" \
	"<name>    <type> <mode><uid><gid><major><minor><start><inc><count>\n" \
	"/dev         d   755    0    0    -      -      -      -    -\n" \
	"/dev/console c   666    0    0    5      1      -      -    -\n" \
	"/dev/null    c   666    0    0    1      3      0      0    -\n" \
	"/dev/zero    c   666    0    0    1      5      0      0    -\n" \
	"/dev/hda     b   640    0    0    3      0      0      0    -\n" \
	"/dev/hda     b   640    0    0    3      1      1      1    15\n\n" \
	"Will Produce:\n" \
	"/dev\n" \
	"/dev/console\n" \
	"/dev/null\n" \
	"/dev/zero\n" \
	"/dev/hda\n" \
	"/dev/hda[0-15]\n"
#endif

#ifdef CONFIG_FEATURE_MD5_SHA1_SUM_CHECK
#define USAGE_MD5_SHA1_SUM_CHECK(a) a
#else
#define USAGE_MD5_SHA1_SUM_CHECK(a)
#endif

#define md5sum_trivial_usage \
	"[OPTION] [FILEs...]" \
	USAGE_MD5_SHA1_SUM_CHECK("\n   or: md5sum [OPTION] -c [FILE]")
#define md5sum_full_usage \
	"Print" USAGE_MD5_SHA1_SUM_CHECK(" or check") " MD5 checksums.\n\n" \
	"Options:\n" \
	"With no FILE, or when FILE is -, read standard input." \
	USAGE_MD5_SHA1_SUM_CHECK("\n\n" \
	"\t-c\tcheck MD5 sums against given list\n" \
	"\nThe following two options are useful only when verifying checksums:\n" \
	"\t-s\tdon't output anything, status code shows success\n" \
	"\t-w\twarn about improperly formated MD5 checksum lines")
#define md5sum_example_usage \
	"$ md5sum < busybox\n" \
	"6fd11e98b98a58f64ff3398d7b324003\n" \
	"$ md5sum busybox\n" \
	"6fd11e98b98a58f64ff3398d7b324003  busybox\n" \
	"$ md5sum -c -\n" \
	"6fd11e98b98a58f64ff3398d7b324003  busybox\n" \
	"busybox: OK\n" \
	"^D\n"

#define mesg_trivial_usage \
	"[y|n]"
#define mesg_full_usage \
	"mesg controls write access to your terminal\n" \
	"\ty\tAllow write access to your terminal\n" \
	"\tn\tDisallow write access to your terminal"

#define mkdir_trivial_usage \
	"[OPTION] DIRECTORY..."
#define mkdir_full_usage \
	"Create the DIRECTORY(ies) if they do not already exist\n\n" \
	"Options:\n" \
	"\t-m\tset permission mode (as in chmod), not rwxrwxrwx - umask\n" \
	"\t-p\tno error if existing, make parent directories as needed"
#define mkdir_example_usage \
	"$ mkdir /tmp/foo\n" \
	"$ mkdir /tmp/foo\n" \
	"/tmp/foo: File exists\n" \
	"$ mkdir /tmp/foo/bar/baz\n" \
	"/tmp/foo/bar/baz: No such file or directory\n" \
	"$ mkdir -p /tmp/foo/bar/baz\n"

#define mke2fs_trivial_usage \
	"[-c|-l filename] [-b block-size] [-f fragment-size] [-g blocks-per-group] " \
	"[-i bytes-per-inode] [-j] [-J journal-options] [-N number-of-inodes] [-n] " \
	"[-m reserved-blocks-percentage] [-o creator-os] [-O feature[,...]] [-q] " \
	"[r fs-revision-level] [-E extended-options] [-v] [-F] [-L volume-label] " \
	"[-M last-mounted-directory] [-S] [-T filesystem-type] " \
	"device [blocks-count]"
#define mke2fs_full_usage \
	"\t-b size\tblock size in bytes\n" \
	"\t-c\tcheck for bad blocks before creating\n" \
	"\t-E opts\tset extended options\n" \
	"\t-f size\tfragment size in bytes\n" \
	"\t-F\tforce (ignore sanity checks)\n" \
	"\t-g num\tnumber of blocks in a block group\n" \
	"\t-i ratio\tthe bytes/inode ratio\n" \
	"\t-j\tcreate a journal (ext3)\n" \
	"\t-J opts\tset journal options (size/device)\n" \
	"\t-l file\tread bad blocks list from file\n" \
	"\t-L lbl\tset the volume label\n" \
	"\t-m percent\tpercent of fs blocks to reserve for admin\n" \
	"\t-M dir\tset last mounted directory\n" \
	"\t-n\tdo not actually create anything\n" \
	"\t-N num\tnumber of inodes to create\n" \
	"\t-o os\tset the 'creator os' field\n" \
	"\t-O features\tdir_index/filetype/has_journal/journal_dev/sparse_super\n" \
	"\t-q\tquiet execution\n" \
	"\t-r rev\tset filesystem revision\n" \
	"\t-S\twrite superblock and group descriptors only\n" \
	"\t-T fs-type\tset usage type (news/largefile/largefile4)\n" \
	"\t-v\tverbose execution"

#define mkfifo_trivial_usage \
	"[OPTIONS] name"
#define mkfifo_full_usage \
	"Creates a named pipe (identical to 'mknod name p')\n\n" \
	"Options:\n" \
	"\t-m\tcreate the pipe using the specified mode (default a=rw)"

#define mkfs_minix_trivial_usage \
	"[-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]"
#define mkfs_minix_full_usage \
	"Make a MINIX filesystem.\n\n" \
	"Options:\n" \
	"\t-c\t\tCheck the device for bad blocks\n" \
	"\t-n [14|30]\tSpecify the maximum length of filenames\n" \
	"\t-i INODES\tSpecify the number of inodes for the filesystem\n" \
	"\t-l FILENAME\tRead the bad blocks list from FILENAME\n" \
	"\t-v\t\tMake a Minix version 2 filesystem"

#define mknod_trivial_usage \
	"[OPTIONS] NAME TYPE MAJOR MINOR"
#define mknod_full_usage \
	"Create a special file (block, character, or pipe).\n\n" \
	"Options:\n" \
	"\t-m\tcreate the special file using the specified mode (default a=rw)\n\n" \
	"TYPEs include:\n" \
	"\tb:\tMake a block (buffered) device\n" \
	"\tc or u:\tMake a character (un-buffered) device\n" \
	"\tp:\tMake a named pipe. MAJOR and MINOR are ignored for named pipes"
#define mknod_example_usage \
	"$ mknod /dev/fd0 b 2 0\n" \
	"$ mknod -m 644 /tmp/pipe p\n"

#define mkswap_trivial_usage \
	"[-c] [-v0|-v1] device [block-count]"
#define mkswap_full_usage \
	"Prepare a disk partition to be used as a swap partition.\n\n" \
	"Options:\n" \
	"\t-c\t\tCheck for read-ability\n" \
	"\t-v0\t\tMake version 0 swap [max 128 Megs]\n" \
	"\t-v1\t\tMake version 1 swap [big!] (default for kernels >\n\t\t\t2.1.117)\n" \
	"\tblock-count\tNumber of block to use (default is entire partition)"

#define mktemp_trivial_usage \
	"[-dq] TEMPLATE"
#define mktemp_full_usage \
	"Creates a temporary file with its name based on TEMPLATE.\n" \
	"TEMPLATE is any name with six `Xs' (i.e., /tmp/temp.XXXXXX).\n\n" \
	"Options:\n" \
	"\t-d\t\tMake a directory instead of a file\n" \
	"\t-q\t\tFail silently if an error occurs"
#define mktemp_example_usage \
	"$ mktemp /tmp/temp.XXXXXX\n" \
	"/tmp/temp.mWiLjM\n" \
	"$ ls -la /tmp/temp.mWiLjM\n" \
	"-rw-------    1 andersen andersen        0 Apr 25 17:10 /tmp/temp.mWiLjM\n"

#define modprobe_trivial_usage \
	"[-knqrsv] [MODULE ...]"
#define modprobe_full_usage \
	"Used for high level module loading and unloading.\n\n" \
	"Options:\n" \
	"\t-k\tMake module autoclean-able\n" \
	"\t-n\tJust show what would be done\n" \
	"\t-q\tQuiet output\n" \
	"\t-r\tRemove module (stacks) or do autoclean\n" \
	"\t-s\tReport via syslog instead of stderr\n" \
	"\t-v\tVerbose output"
#define modprobe_example_usage \
	"$ modprobe cdrom\n"

#define more_trivial_usage \
	"[FILE ...]"
#define more_full_usage \
	"More is a filter for viewing FILE one screenful at a time."
#define more_example_usage \
	"$ dmesg | more\n"

#ifdef CONFIG_FEATURE_MOUNT_LOOP
#  define USAGE_MOUNT_LOOP(a) a
#else
#  define USAGE_MOUNT_LOOP(a)
#endif
#ifdef CONFIG_FEATURE_MTAB_SUPPORT
#  define USAGE_MTAB(a) a
#else
#  define USAGE_MTAB(a)
#endif
#define mount_trivial_usage \
	"[flags] DEVICE NODE [-o options,more-options]"
#define mount_full_usage \
	"Mount a filesystem.  Autodetection of filesystem type requires the\n" \
	"/proc filesystem be already mounted.\n\n" \
	"Flags:\n"  \
	"\t-a:\t\tMount all filesystems in fstab\n" \
	USAGE_MTAB( \
	"\t-f:\t\t\"Fake\" Add entry to mount table but don't mount it\n" \
	"\t-n:\t\tDon't write a mount table entry\n" \
	) \
	"\t-o option:\tOne of many filesystem options, listed below\n" \
	"\t-r:\t\tMount the filesystem read-only\n" \
	"\t-t fs-type:\tSpecify the filesystem type\n" \
	"\t-w:\t\tMount for reading and writing (default)\n" \
	"\n" \
	"Options for use with the \"-o\" flag:\n" \
	"\tasync/sync:\tWrites are asynchronous / synchronous\n" \
	"\tatime/noatime:\tEnable / disable updates to inode access times\n" \
	"\tdev/nodev:\tAllow use of special device files / disallow them\n" \
	"\texec/noexec:\tAllow use of executable files / disallow them\n" \
	USAGE_MOUNT_LOOP( \
	"\tloop:\t\tMounts a file via loop device\n" \
	) \
	"\tsuid/nosuid:\tAllow set-user-id-root programs / disallow them\n" \
	"\tremount:\tRe-mount a mounted filesystem, changing its flags\n" \
	"\tro/rw:\t\tMount for read-only / read-write\n" \
	"\tbind:\t\tUse the linux 2.4.x \"bind\" feature\n" \
	"\nThere are EVEN MORE flags that are specific to each filesystem\n" \
	"You'll have to see the written documentation for those filesystems"
#define mount_example_usage \
	"$ mount\n" \
	"/dev/hda3 on / type minix (rw)\n" \
	"proc on /proc type proc (rw)\n" \
	"devpts on /dev/pts type devpts (rw)\n" \
	"$ mount /dev/fd0 /mnt -t msdos -o ro\n" \
	"$ mount /tmp/diskimage /opt -t ext2 -o loop\n"

#define mountpoint_trivial_usage \
	"[-q] <[-d] DIR | -x DEVICE>"
#define mountpoint_full_usage \
	"mountpoint checks if the directory is a mountpoint\n\n" \
	"Options:\n"  \
	"\t-q:\t\tBe more quiet\n" \
	"\t-d:\t\tPrint major/minor device number of the filesystem\n" \
	"\t-x:\t\tPrint major/minor device number of the blockdevice"
#define mountpoint_example_usage \
	"$ mountpoint /proc\n" \
	"/proc is not a mountpoint\n" \
	"$ mountpoint /sys\n" \
	"/sys is a mountpoint\n"

#define mt_trivial_usage \
	"[-f device] opcode value"
#define mt_full_usage \
	"Control magnetic tape drive operation\n" \
	"\nAvailable Opcodes:\n\n" \
	"bsf bsfm bsr bss datacompression drvbuffer eof eom erase\n" \
	"fsf fsfm fsr fss load lock mkpart nop offline ras1 ras2\n" \
	"ras3 reset retension rewind rewoffline seek setblk setdensity\n" \
	"setpart tell unload unlock weof wset"

#define mv_trivial_usage \
	"[OPTION]... SOURCE DEST\n" \
	"or: mv [OPTION]... SOURCE... DIRECTORY"
#define mv_full_usage \
	"Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.\n\n" \
	"Options:\n" \
	"\t-f\tdon't prompt before overwriting\n" \
	"\t-i\tinteractive, prompt before overwrite"
#define mv_example_usage \
	"$ mv /tmp/foo /bin/bar\n"

#define nameif_trivial_usage \
	"[-s] [-c FILE] [{IFNAME MACADDR}]"
#define nameif_full_usage \
	"Nameif renaming network interface while it in the down state.\n\n" \
	"Options:\n" \
	"\t-c FILE\t\tUse configuration file (default is /etc/mactab)\n" \
	"\t-s\t\tUse syslog (LOCAL0 facility)\n" \
	"\tIFNAME MACADDR\tnew_interface_name interface_mac_address"
#define nameif_example_usage \
	"$ nameif -s dmz0 00:A0:C9:8C:F6:3F\n" \
	" or\n" \
	"$ nameif -c /etc/my_mactab_file\n" \

#ifdef CONFIG_NC_GAPING_SECURITY_HOLE
#  define USAGE_NC_EXEC(a) a
#else
#  define USAGE_NC_EXEC(a)
#endif
#define nc_trivial_usage \
	"[OPTIONS] [IP] [port]"
#define nc_full_usage \
	"Netcat opens a pipe to IP:port\n\n" \
	"Options:\n" \
	"\t-l\t\tlisten mode, for inbound connects\n" \
	"\t-p PORT\t\tlocal port number\n" \
	"\t-i SECS\t\tdelay interval for lines sent\n" \
	USAGE_NC_EXEC( \
	"\t-e PROG\t\tprogram to exec after connect (dangerous!)\n" \
	) \
	"\t-w SECS\t\ttimeout for connects and final net reads"
#define nc_example_usage \
	"$ nc foobar.somedomain.com 25\n" \
	"220 foobar ESMTP Exim 3.12 #1 Sat, 15 Apr 2000 00:03:02 -0600\n" \
	"help\n" \
	"214-Commands supported:\n" \
	"214-    HELO EHLO MAIL RCPT DATA AUTH\n" \
	"214     NOOP QUIT RSET HELP\n" \
	"quit\n" \
	"221 foobar closing connection\n"

#define netstat_trivial_usage \
	"[-laenrtuwx]"
#define netstat_full_usage \
	"Netstat displays Linux networking information.\n\n" \
	"Options:\n" \
	"\t-l display listening server sockets\n" \
	"\t-a display all sockets (default: connected)\n" \
	"\t-e display other/more information\n" \
	"\t-n don't resolve names\n" \
	"\t-r display routing table\n" \
	"\t-t tcp sockets\n" \
	"\t-u udp sockets\n" \
	"\t-w raw sockets\n" \
	"\t-x unix sockets"

#define nice_trivial_usage \
	"[-n ADJUST] [COMMAND [ARG] ...]"
#define nice_full_usage \
	"Nice runs a program with modified scheduling priority.\n\n" \
	"Options:\n" \
	"\t-n ADJUST\tAdjust the scheduling priority by ADJUST"

#define nslookup_trivial_usage \
	"[HOST] [SERVER]"
#define nslookup_full_usage \
	"Queries the nameserver for the IP address of the given HOST\n" \
	"optionally using a specified DNS server"
#define nslookup_example_usage \
	"$ nslookup localhost\n" \
	"Server:     default\n" \
	"Address:    default\n" \
	"\n" \
	"Name:       debian\n" \
	"Address:    127.0.0.1\n"

#define od_trivial_usage \
	"[-aBbcDdeFfHhIiLlOovXx] [FILE]"
#define od_full_usage \
	"Write an unambiguous representation, octal bytes by default, of FILE\n" \
	"to standard output.  With no FILE, or when FILE is -, read standard input."

#define openvt_trivial_usage \
	"<vtnum> <COMMAND> [ARGS...]"
#define openvt_full_usage \
	"Start a command on a new virtual terminal"
#define openvt_example_usage \
	"openvt 2 /bin/ash\n"

#ifdef CONFIG_FEATURE_SHA1_PASSWORDS
#  define PASSWORD_ALG_TYPES(a) a
#else
#  define PASSWORD_ALG_TYPES(a)
#endif
#define passwd_trivial_usage \
	"[OPTION] [name]"
#define passwd_full_usage \
	"Change a user password. If no name is specified,\n" \
	"changes the password for the current user.\n" \
	"Options:\n" \
	"\t-a\tDefine which algorithm shall be used for the password\n" \
	"\t\t\t(Choices: des, md5" \
	PASSWORD_ALG_TYPES(", sha1") \
	")\n\t-d\tDelete the password for the specified user account\n" \
	"\t-l\tLocks (disables) the specified user account\n" \
	"\t-u\tUnlocks (re-enables) the specified user account"

#define patch_trivial_usage \
	"[-p<num>] [-i<patch.diff>]"
#define patch_full_usage \
	"[-p<num>]\n" \
	"[-i<diff>]"
#define patch_example_usage \
	"$ patch -p1 <example.diff\n" \
	"$ patch -p0 -i example.diff"

#define pidof_trivial_usage \
	"process-name [OPTION] [process-name ...]"
#define pidof_full_usage \
	"Lists the PIDs of all processes with names that match the\n" \
	"names on the command line.\n" \
	"Options:\n" \
	"\t-s\t\tdisplay only a single PID"
#define pidof_example_usage \
	"$ pidof init\n" \
	"1\n"

#ifndef CONFIG_FEATURE_FANCY_PING
#define ping_trivial_usage "host"
#define ping_full_usage    "Send ICMP ECHO_REQUEST packets to network hosts"
#else
#define ping_trivial_usage \
	"[OPTION]... host"
#define ping_full_usage \
	"Send ICMP ECHO_REQUEST packets to network hosts.\n\n" \
	"Options:\n" \
	"\t-c COUNT\tSend only COUNT pings\n" \
	"\t-s SIZE\t\tSend SIZE data bytes in packets (default=56)\n" \
	"\t-q\t\tQuiet mode, only displays output at start\n" \
	"\t\t\tand when finished"
#endif
#define ping_example_usage \
	"$ ping localhost\n" \
	"PING slag (127.0.0.1): 56 data bytes\n" \
	"64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=20.1 ms\n" \
	"\n" \
	"--- debian ping statistics ---\n" \
	"1 packets transmitted, 1 packets received, 0% packet loss\n" \
	"round-trip min/avg/max = 20.1/20.1/20.1 ms\n"

#ifndef CONFIG_FEATURE_FANCY_PING6
#define ping6_trivial_usage "host"
#define ping6_full_usage    "Send ICMP ECHO_REQUEST packets to network hosts"
#else
#define ping6_trivial_usage \
	"[OPTION]... host"
#define ping6_full_usage \
	"Send ICMP ECHO_REQUEST packets to network hosts.\n\n" \
	"Options:\n" \
	"\t-c COUNT\tSend only COUNT pings\n" \
	"\t-s SIZE\t\tSend SIZE data bytes in packets (default=56)\n" \
	"\t-q\t\tQuiet mode, only displays output at start\n" \
	"\t\t\tand when finished"
#endif
#define ping6_example_usage \
	"$ ping6 ip6-localhost\n" \
	"PING ip6-localhost (::1): 56 data bytes\n" \
	"64 bytes from ::1: icmp6_seq=0 ttl=64 time=20.1 ms\n" \
	"\n" \
	"--- ip6-localhost ping statistics ---\n" \
	"1 packets transmitted, 1 packets received, 0% packet loss\n" \
	"round-trip min/avg/max = 20.1/20.1/20.1 ms\n"

#define pivot_root_trivial_usage \
	"NEW_ROOT PUT_OLD"
#define pivot_root_full_usage \
	"Move the current root file system to PUT_OLD and make NEW_ROOT\n" \
	"the new root file system."

#define poweroff_trivial_usage \
	"[-d<delay>]"
#define poweroff_full_usage \
	"Halt the system and request that the kernel shut off the power.\n" \
	"Options:\n" \
	"\t-d\t\tdelay interval for shutting off"

#define printenv_trivial_usage \
	"[VARIABLES...]"
#define printenv_full_usage \
	"print all or part of environment\n\n" \
	"If no environment VARIABLE specified, print them all."

#define printf_trivial_usage \
	"FORMAT [ARGUMENT...]"
#define printf_full_usage \
	"Formats and prints ARGUMENT(s) according to FORMAT,\n" \
	"Where FORMAT controls the output exactly as in C printf."
#define printf_example_usage \
	"$ printf \"Val=%d\\n\" 5\n" \
	"Val=5\n"

#if !defined(CONFIG_SELINUX) && !defined(CONFIG_PS_FEATURE_WIDE)
#define USAGE_PS "\n\tThis version of ps accepts no options."
#else
#define USAGE_PS "\nOptions:"
#endif
#ifdef CONFIG_SELINUX
#define USAGE_NONSELINUX(a)
#else
#define USAGE_NONSELINUX(a) a
#endif
#ifdef CONFIG_PS_FEATURE_WIDE
#define USAGE_PS_WIDE(a) a
#else
#define USAGE_PS_WIDE(a)
#endif

#define ps_trivial_usage \
	""
#define ps_full_usage \
	"Report process status\n" \
	USAGE_PS \
	USAGE_SELINUX("\n\t-c\tshow SE Linux context") \
	USAGE_PS_WIDE("\n\tw\twide output")


#define ps_example_usage \
	"$ ps\n" \
	"  PID  Uid      Gid State Command\n" \
	"    1 root     root     S init\n" \
	"    2 root     root     S [kflushd]\n" \
	"    3 root     root     S [kupdate]\n" \
	"    4 root     root     S [kpiod]\n" \
	"    5 root     root     S [kswapd]\n" \
	"  742 andersen andersen S [bash]\n" \
	"  743 andersen andersen S -bash\n" \
	"  745 root     root     S [getty]\n" \
	" 2990 andersen andersen R ps\n"

#define pwd_trivial_usage \
	""
#define pwd_full_usage \
	"Print the full filename of the current working directory."
#define pwd_example_usage \
	"$ pwd\n" \
	"/root\n"

#define rdate_trivial_usage \
	"[-sp] HOST"
#define rdate_full_usage \
	"Get and possibly set the system date and time from a remote HOST.\n\n" \
	"Options:\n" \
	"\t-s\tSet the system date and time (default)\n" \
	"\t-p\tPrint the date and time"

#ifdef CONFIG_FEATURE_READLINK_FOLLOW
#define USAGE_READLINK_FOLLOW(a) a
#else
#define USAGE_READLINK_FOLLOW(a)
#endif

#define readlink_trivial_usage \
	USAGE_READLINK_FOLLOW("[-f] ") "FILE"
#define readlink_full_usage \
	"Displays the value of a symbolic link." \
	USAGE_READLINK_FOLLOW("\n\nOptions:\n" \
	"\t-f\tcanonicalize by following all symlinks")

#define readprofile_trivial_usage \
	"[OPTIONS]..."
#define readprofile_full_usage \
	"Options:\n" \
	"\t -m <mapfile>  (default: /boot/System.map)\n" \
	"\t -p <profile>  (default: /proc/profile)\n" \
	"\t -M <mult>     set the profiling multiplier to <mult>\n" \
	"\t -i            print only info about the sampling step\n" \
	"\t -v            print verbose data\n" \
	"\t -a            print all symbols, even if count is 0\n" \
	"\t -b            print individual histogram-bin counts\n" \
	"\t -s            print individual counters within functions\n" \
	"\t -r            reset all the counters (root only)\n" \
	"\t -n            disable byte order auto-detection"

#define realpath_trivial_usage \
	"pathname  ..."
#define realpath_full_usage \
	"Returns the absolute pathnames of given argument."

#define reboot_trivial_usage \
	"[-d<delay>]"
#define reboot_full_usage \
	"Reboot the system.\n" \
	"Options:\n" \
	"\t-d\t\tdelay interval for rebooting"

#define renice_trivial_usage \
	"{{-n INCREMENT} | PRIORITY} [[ -p | -g | -u ] ID ...]"
#define renice_full_usage \
	"Changes priority of running processes.\n\n" \
	"Options:\n" \
	"\t-n\tadjusts current nice value (smaller is faster)\n" \
	"\t-p\tprocess id(s) (default)\n" \
	"\t-g\tprocess group id(s)\n" \
	"\t-u\tprocess user name(s) and/or id(s)"

#define reset_trivial_usage \
	""
#define reset_full_usage \
	"Resets the screen."

#define rm_trivial_usage \
	"[OPTION]... FILE..."
#define rm_full_usage \
	"Remove (unlink) the FILE(s).  You may use '--' to\n" \
	"indicate that all following arguments are non-options.\n\n" \
	"Options:\n" \
	"\t-i\t\talways prompt before removing each destination\n" \
	"\t-f\t\tremove existing destinations, never prompt\n" \
	"\t-r or -R\tremove the contents of directories recursively"
#define rm_example_usage \
	"$ rm -rf /tmp/foo\n"

#define rmdir_trivial_usage \
	"[OPTION]... DIRECTORY..."
#define rmdir_full_usage \
	"Remove the DIRECTORY(ies), if they are empty."
#define rmdir_example_usage \
	"# rmdir /tmp/foo\n"

#define rmmod_trivial_usage \
	"[OPTION]... [MODULE]..."
#define rmmod_full_usage \
	"Unloads the specified kernel modules from the kernel.\n\n" \
	"Options:\n" \
	"\t-a\tRemove all unused modules (recursively)"
#define rmmod_example_usage \
	"$ rmmod tulip\n"

#ifdef CONFIG_FEATURE_IPV6
#  define USAGE_ROUTE_IPV6(a) a
#else
#  define USAGE_ROUTE_IPV6(a) "\t"
#endif


#define route_trivial_usage \
	"[{add|del|delete}]"
#define route_full_usage \
	"Edit the kernel's routing tables.\n\n" \
	"Options:\n" \
	"\t-n\t\tDont resolve names\n" \
	"\t-e\t\tDisplay other/more information\n" \
	"\t-A inet" USAGE_ROUTE_IPV6("{6}") "\tSelect address family"

#define rpm_trivial_usage \
	"-i -q[ildc]p package.rpm"
#define rpm_full_usage \
	"Manipulates RPM packages" \
	"\n\nOptions:" \
	"\n\t-i Install package" \
	"\n\t-q Query package" \
	"\n\t-p Query uninstalled package" \
	"\n\t-i Show information" \
	"\n\t-l List contents" \
	"\n\t-d List documents" \
	"\n\t-c List config files"

#define rpm2cpio_trivial_usage \
	"package.rpm"
#define rpm2cpio_full_usage \
	"Outputs a cpio archive of the rpm file."

#define run_parts_trivial_usage \
	"[-t] [-a ARG] [-u MASK] DIRECTORY"
#define run_parts_full_usage \
	"Run a bunch of scripts in a directory.\n\n" \
	"Options:\n" \
	"\t-t\tPrints what would be run, but does not actually run anything\n" \
	"\t-a ARG\tPass ARG as an argument for every program invoked\n" \
	"\t-u MASK\tSet the umask to MASK before executing every program"

#define rx_trivial_usage \
	"FILE"
#define rx_full_usage \
	"Receive a file using the xmodem protocol."
#define rx_example_usage \
	"$ rx /tmp/foo\n"

#define sed_trivial_usage \
	"[-efinr] pattern [files...]"
#define sed_full_usage \
	"Options:\n" \
	"\t-e script\tadd the script to the commands to be executed\n" \
	"\t-f scriptfile\tadd script-file contents to the\n" \
	"\t\t\tcommands to be executed\n" \
	"\t-i\t\tedit files in-place\n" \
	"\t-n\t\tsuppress automatic printing of pattern space\n" \
	"\t-r\t\tuse extended regular expression syntax\n" \
	"\n" \
	"If no -e or -f is given, the first non-option argument is taken as the sed\n" \
	"script to interpret. All remaining arguments are names of input files; if no\n" \
	"input files are specified, then the standard input is read.  Source files\n" \
	"will not be modified unless -i option is given."

#define sed_example_usage \
	"$ echo \"foo\" | sed -e 's/f[a-zA-Z]o/bar/g'\n" \
	"bar\n"

#define seq_trivial_usage \
	"[first [increment]] last"
#define seq_full_usage \
	"Print numbers from FIRST to LAST, in steps of INCREMENT.\n" \
	"FIRST, INCREMENT default to 1\n" \
	"Arguments:\n" \
	"\tLAST\n" \
	"\tFIRST\tLAST\n" \
	"\tFIRST\tINCREMENT\tLAST"

#define setconsole_trivial_usage \
	"[-r|--reset] [DEVICE]"
#define setconsole_full_usage \
	"Redirects system console output to DEVICE (default: /dev/tty).\n\n" \
	"Options:\n" \
	"\t-r\tReset output to /dev/console."

#define setkeycodes_trivial_usage \
	"SCANCODE KEYCODE ..."
#define setkeycodes_full_usage \
	"Set entries into the kernel's scancode-to-keycode map,\n" \
	"allowing unusual keyboards to generate usable keycodes.\n\n" \
	"SCANCODE may be either xx or e0xx (hexadecimal),\n" \
	"and KEYCODE is given in decimal"
#define setkeycodes_example_usage \
	"$ setkeycodes e030 127\n"

#define setsid_trivial_usage \
	"program [arg ...]"
#define setsid_full_usage \
	"Runs any program in a new session by calling setsid() before\n" \
	"exec'ing the rest of its arguments.  See setsid(2) for details."

#define lash_trivial_usage \
	"[FILE]...\n" \
	"or: sh -c command [args]..."
#define lash_full_usage \
	"The BusyBox LAme SHell (command interpreter)"
#define lash_notes_usage \
	"This command does not yet have proper documentation.\n\n" \
	"Use lash just as you would use any other shell.  It properly handles pipes,\n" \
	"redirects, job control, can be used as the shell for scripts, and has a\n" \
	"sufficient set of builtins to do what is needed.  It does not (yet) support\n" \
	"Bourne Shell syntax.  If you need things like \"if-then-else\", \"while\", and such\n" \
	"use ash or bash.  If you just need a very simple and extremely small shell,\n" \
	"this will do the job."

#define last_trivial_usage \
	""
#define last_full_usage \
	"Shows listing of the last users that logged into the system"

#define sha1sum_trivial_usage \
	"[OPTION] [FILEs...]" \
	USAGE_MD5_SHA1_SUM_CHECK("\n   or: sha1sum [OPTION] -c [FILE]")
#define sha1sum_full_usage \
	"Print" USAGE_MD5_SHA1_SUM_CHECK(" or check") " SHA1 checksums.\n\n" \
	"Options:\n" \
	"With no FILE, or when FILE is -, read standard input." \
	USAGE_MD5_SHA1_SUM_CHECK("\n\n" \
	"\t-c\tcheck SHA1 sums against given list\n" \
	"\nThe following two options are useful only when verifying checksums:\n" \
	"\t-s\tdon't output anything, status code shows success\n" \
	"\t-w\twarn about improperly formated SHA1 checksum lines")

#ifdef CONFIG_FEATURE_FANCY_SLEEP
#  define USAGE_FANCY_SLEEP(a) a
#  define USAGE_NOT_FANCY_SLEEP(a)
#else
#  define USAGE_FANCY_SLEEP(a)
#  define USAGE_NOT_FANCY_SLEEP(a) a
#endif

#define sleep_trivial_usage \
	USAGE_FANCY_SLEEP("[") "N" USAGE_FANCY_SLEEP("]...")
#define sleep_full_usage \
	USAGE_NOT_FANCY_SLEEP("Pause for N seconds.") \
	USAGE_FANCY_SLEEP( \
	"Pause for a time equal to the total of the args given, where each arg can\n" \
	"\t\thave an optional suffix of (s)econds, (m)inutes, (h)ours, or (d)ays.")
#define sleep_example_usage \
	"$ sleep 2\n" \
	"[2 second delay results]\n" \
	USAGE_FANCY_SLEEP("$ sleep 1d 3h 22m 8s\n" \
	"[98528 second delay results]\n")

#ifdef CONFIG_SORT_BIG
#  define USAGE_SORT_BIG(a) a
#else
#  define USAGE_SORT_BIG(a)
#endif

#define sort_trivial_usage \
	"[-nru" USAGE_SORT_BIG("gMcszbdfimSTokt] [-o outfile] [-k start[.offset][opts][,end[.offset][opts]] [-t char") "] [FILE]..."
#define sort_full_usage \
	"Sorts lines of text in the specified files\n\n" \
	"Options:\n" \
	USAGE_SORT_BIG( \
		"\t-b\tignore leading blanks\n" \
		"\t-c\tcheck whether input is sorted\n" \
		"\t-d\tdictionary order (blank or alphanumeric only)\n" \
		"\t-f\tignore case\n" \
		"\t-g\tgeneral numerical sort\n" \
		"\t-i\tignore unprintable characters\n" \
		"\t-k\tspecify sort key\n" \
		"\t-M\tsort month\n" \
	) \
	"\t-n\tsort numbers\n" \
	USAGE_SORT_BIG( \
		"\t-o\toutput to file\n" \
		"\t-k\tsort by key\n" \
		"\t-t\tuse key separator other than whitespace\n" \
	) \
	"\t-r\treverse sort order\n" \
	USAGE_SORT_BIG("\t-s\tstable (don't sort ties alphabetically)\n") \
	"\t-u\tsuppress duplicate lines" \
	USAGE_SORT_BIG("\n\t-z\tinput terminated by nulls, not newlines\n") \
	USAGE_SORT_BIG("\t-mST\tignored for GNU compatability") \
	""
#define sort_example_usage \
	"$ echo -e \"e\\nf\\nb\\nd\\nc\\na\" | sort\n" \
	"a\n" \
	"b\n" \
	"c\n" \
	"d\n" \
	"e\n" \
	"f\n" \
	USAGE_SORT_BIG( \
		"$ echo -e \"c 3\\nb 2\\nd 2\" | $SORT -k 2,2n -k 1,1r\n" \
		"d 2\n" \
		"b 2\n" \
		"c 3\n" \
	) \
	""

#define start_stop_daemon_trivial_usage \
	"[OPTIONS] [--start|--stop] ... [-- arguments...]"
#define start_stop_daemon_full_usage \
	"Program to start and stop services." \
	"\n\nOptions:" \
	"\n\t-S|--start\t\t\tstart" \
	"\n\t-K|--stop\t\t\tstop" \
	"\n\t-a|--startas <pathname>\t\tstarts process specified by pathname" \
	"\n\t-b|--background\t\t\tforce process into background" \
	"\n\t-u|--user <username>|<uid>\tstop this user's processes" \
	"\n\t-x|--exec <executable>\t\tprogram to either start or check" \
	"\n\t-m|--make-pidfile <filename>\tcreate the -p file and enter pid in it" \
	"\n\t-n|--name <process-name>\tstop processes with this name" \
	"\n\t-p|--pidfile <pid-file>\t\tsave or load pid using a pid-file" \
	"\n\t-q|--quiet\t\t\tbe quiet" \
	"\n\t-s|--signal <signal>\t\tsignal to send (default TERM)"

#ifdef CONFIG_FEATURE_STAT_FORMAT
#  define USAGE_STAT_FORMAT(a) a
#else
#  define USAGE_STAT_FORMAT(a)
#endif
#define stat_trivial_usage \
	"[OPTION] FILE..."
#define stat_full_usage \
	"display file (default) or filesystem status.\n\n" \
	"Options:\n" \
	USAGE_STAT_FORMAT("\t-c fmt\tuse the specified format\n") \
	"\t-f\tdisplay filesystem status\n" \
	"\t-L,-l\tdereference links\n" \
	"\t-t\tdisplay info in terse form\n" \
	USAGE_STAT_FORMAT( \
	"\nValid format sequences for files:\n" \
	"  %a   Access rights in octal\n" \
	"  %A   Access rights in human readable form\n" \
	"  %b   Number of blocks allocated (see %B)\n" \
	"  %B   The size in bytes of each block reported by %b\n" \
	"  %d   Device number in decimal\n" \
	"  %D   Device number in hex\n" \
	"  %f   Raw mode in hex\n" \
	"  %F   File type\n" \
	"  %g   Group ID of owner\n" \
	"  %G   Group name of owner\n" \
	"  %h   Number of hard links\n" \
	"  %i   Inode number\n" \
	"  %n   File name\n" \
	"  %N   Quoted file name with dereference if symbolic link\n" \
	"  %o   I/O block size\n" \
	"  %s   Total size, in bytes\n" \
	"  %t   Major device type in hex\n" \
	"  %T   Minor device type in hex\n" \
	"  %u   User ID of owner\n" \
	"  %U   User name of owner\n" \
	"  %x   Time of last access\n" \
	"  %X   Time of last access as seconds since Epoch\n" \
	"  %y   Time of last modification\n" \
	"  %Y   Time of last modification as seconds since Epoch\n" \
	"  %z   Time of last change\n" \
	"  %Z   Time of last change as seconds since Epoch\n" \
	"\nValid format sequences for file systems:\n" \
	"  %a   Free blocks available to non-superuser\n" \
	"  %b   Total data blocks in file system\n" \
	"  %c   Total file nodes in file system\n" \
	"  %d   Free file nodes in file system\n" \
	"  %f   Free blocks in file system\n" \
	"  %i   File System ID in hex\n" \
	"  %l   Maximum length of filenames\n" \
	"  %n   File name\n" \
	"  %s   Block size (for faster transfers)\n" \
	"  %S   Fundamental block size (for block counts)\n" \
	"  %t   Type in hex\n" \
	"  %T   Type in human readable form\n" \
	)

#define strings_trivial_usage \
	"[-afo] [-n length] [file ... ]"
#define strings_full_usage \
	"Display printable strings in a binary file." \
	"\n\nOptions:" \
	"\n\t-a\tScan the whole files (this is the default)." \
	"\n\t-f\tPrecede each string with the name of the file where it was found." \
	"\n\t-n N\tSpecifies that at least N characters forms a sequence (default 4)" \
	"\n\t-o\tEach string is preceded by its decimal offset in the file"

#define stty_trivial_usage \
	"[-a|g] [-F DEVICE] [SETTING]..."
#define stty_full_usage \
	"Without arguments, prints baud rate, line discipline," \
	"\nand deviations from stty sane." \
	"\n\nOptions:" \
	"\n\t-F DEVICE\topen device instead of stdin" \
	"\n\t-a\t\tprint all current settings in human-readable form" \
	"\n\t-g\t\tprint in stty-readable form" \
	"\n\t[SETTING]\tsee manpage"

#define su_trivial_usage \
	"[OPTION]... [-] [username]"
#define su_full_usage \
	"Change user id or become root.\n" \
	"Options:\n" \
	"\t-p\tPreserve environment"

#define sulogin_trivial_usage \
	"[OPTION]... [tty-device]"
#define sulogin_full_usage \
	"Single user login\n" \
	"Options:\n" \
	"\t-f\tDo not authenticate (user already authenticated)\n" \
	"\t-h\tName of the remote host for this login\n" \
	"\t-p\tPreserve environment"

#define sum_trivial_usage \
	"[rs] [files...]"
#define sum_full_usage \
	"checksum and count the blocks in a file\n\n" \
	"Options:\n" \
	"\t-r\tuse BSD sum algorithm (1K blocks)\n" \
	"\t-s\tuse System V sum algorithm (512byte blocks)"

#define swapoff_trivial_usage \
	"[OPTION] [DEVICE]"
#define swapoff_full_usage \
	"Stop swapping virtual memory pages on DEVICE.\n\n" \
	"Options:\n" \
	"\t-a\tStop swapping on all swap devices"

#define swapon_trivial_usage \
	"[OPTION] [DEVICE]"
#define swapon_full_usage \
	"Start swapping virtual memory pages on DEVICE.\n\n" \
	"Options:\n" \
	"\t-a\tStart swapping on all swap devices"

#define sync_trivial_usage \
	""
#define sync_full_usage \
	"Write all buffered filesystem blocks to disk."


#ifdef CONFIG_FEATURE_ROTATE_LOGFILE
#  define USAGE_ROTATE_LOGFILE(a) a
#else
#  define USAGE_ROTATE_LOGFILE(a)
#endif
#ifdef CONFIG_FEATURE_REMOTE_LOG
#  define USAGE_REMOTE_LOG(a) a
#else
#  define USAGE_REMOTE_LOG(a)
#endif
#ifdef CONFIG_FEATURE_IPC_SYSLOG
#  define USAGE_IPC_LOG(a) a
#else
#  define USAGE_IPC_LOG(a)
#endif

#ifdef CONFIG_SYSCTL
#define sysctl_trivial_usage \
	"[OPTIONS]... [VALUE]..."
#define sysctl_full_usage
	"sysctl - configure kernel parameters at runtime\n\n" \
	"Options:\n" \
	"\t-n\tUse this option to disable printing of the key name when printing values\n" \
	"\t-w\tUse this option when you want to change a sysctl setting\n" \
	"\t-p\tLoad in sysctl settings from the file specified or /etc/sysctl.conf if none given\n" \
	"\t-a\tDisplay all values currently available\n" \
	"\t-A\tDisplay all values currently available in table form"
#define sysctl_example_usage
	"sysctl [-n] variable ...\n" \
	"sysctl [-n] -w variable=value ...\n" \
	"sysctl [-n] -a\n" \
	"sysctl [-n] -p <file>\t(default /etc/sysctl.conf)\n" \
	"sysctl [-n] -A\n"
#endif

#define syslogd_trivial_usage \
	"[OPTION]..."
#define syslogd_full_usage \
	"Linux system and kernel logging utility.\n" \
	"Note that this version of syslogd ignores /etc/syslog.conf.\n\n" \
	"Options:\n" \
	"\t-m MIN\t\tMinutes between MARK lines (default=20, 0=off)\n" \
	"\t-n\t\tRun as a foreground process\n" \
	"\t-O FILE\t\tUse an alternate log file (default=/var/log/messages)\n" \
	"\t-S\t\tMake logging output smaller." \
	USAGE_ROTATE_LOGFILE( \
	"\n\t-s SIZE\t\tMax size (KB) before rotate (default=200KB, 0=off)\n" \
	"\t-b NUM\t\tNumber of rotated logs to keep (default=1, max=99, 0=purge)") \
	USAGE_REMOTE_LOG( \
	"\n\t-R HOST[:PORT]\tLog to IP or hostname on PORT (default PORT=514/UDP)\n" \
	"\t-L\t\tLog locally and via network logging (default is network only)") \
	USAGE_IPC_LOG( \
	"\n\t-C [size(KiB)]\tLog to a circular buffer (read the buffer using logread)")
#define syslogd_example_usage \
	"$ syslogd -R masterlog:514\n" \
	"$ syslogd -R 192.168.1.1:601\n"


#ifndef CONFIG_FEATURE_FANCY_TAIL
#  define USAGE_UNSIMPLE_TAIL(a)
#else
#  define USAGE_UNSIMPLE_TAIL(a) a
#endif
#define tail_trivial_usage \
	"[OPTION]... [FILE]..."
#define tail_full_usage \
	"Print last 10 lines of each FILE to standard output.\n" \
	"With more than one FILE, precede each with a header giving the\n" \
	"file name. With no FILE, or when FILE is -, read standard input.\n\n" \
	"Options:\n" \
	USAGE_UNSIMPLE_TAIL("\t-c N[kbm]\toutput the last N bytes\n") \
	"\t-n N[kbm]\tprint last N lines instead of last 10\n" \
	"\t-f\t\toutput data as the file grows" \
	USAGE_UNSIMPLE_TAIL( "\n\t-q\t\tnever output headers giving file names\n" \
	"\t-s SEC\t\twait SEC seconds between reads with -f\n" \
	"\t-v\t\talways output headers giving file names\n\n" \
	"If the first character of N (bytes or lines) is a '+', output begins with \n" \
	"the Nth item from the start of each file, otherwise, print the last N items\n" \
	"in the file. N bytes may be suffixed by k (x1024), b (x512), or m (1024^2)." )
#define tail_example_usage \
	"$ tail -n 1 /etc/resolv.conf\n" \
	"nameserver 10.0.0.1\n"

#ifdef CONFIG_FEATURE_TAR_CREATE
#  define USAGE_TAR_CREATE(a) a
#else
#  define USAGE_TAR_CREATE(a)
#endif
#ifdef CONFIG_FEATURE_TAR_EXCLUDE
#  define USAGE_TAR_EXCLUDE(a) a
#else
#  define USAGE_TAR_EXCLUDE(a)
#endif
#ifdef CONFIG_FEATURE_TAR_GZIP
#  define USAGE_TAR_GZIP(a) a
#else
#  define USAGE_TAR_GZIP(a)
#endif
#ifdef CONFIG_FEATURE_TAR_BZIP2
#  define USAGE_TAR_BZIP2(a) a
#else
#  define USAGE_TAR_BZIP2(a)
#endif
#ifdef CONFIG_FEATURE_TAR_COMPRESS
#  define USAGE_TAR_COMPRESS(a) a
#else
#  define USAGE_TAR_COMPRESS(a)
#endif

#define tar_trivial_usage \
	"-[" USAGE_TAR_CREATE("c") USAGE_TAR_GZIP("z") USAGE_TAR_BZIP2("j") USAGE_TAR_COMPRESS("Z") "xtvO] " \
	USAGE_TAR_EXCLUDE("[-X FILE]") \
	"[-f TARFILE] [-C DIR] [FILE(s)] ..."
#define tar_full_usage \
	"Create, extract, or list files from a tar file.\n\n" \
	"Options:\n" \
	USAGE_TAR_CREATE("\tc\t\tcreate\n") \
	"\tx\t\textract\n" \
	"\tt\t\tlist\n" \
	"\nArchive format selection:\n" \
	USAGE_TAR_GZIP("\tz\t\tFilter the archive through gzip\n") \
	USAGE_TAR_BZIP2("\tj\t\tFilter the archive through bzip2\n") \
	USAGE_TAR_COMPRESS("\tZ\t\tFilter the archive through compress\n") \
	"\nFile selection:\n" \
	"\tf\t\tname of TARFILE or \"-\" for stdin\n" \
	"\tO\t\textract to stdout\n" \
	USAGE_TAR_EXCLUDE( \
	"\texclude\t\tfile to exclude\n" \
	 "\tX\t\tfile with names to exclude\n" \
	) \
	"\tC\t\tchange to directory DIR before operation\n" \
	"\tv\t\tverbosely list files processed"
#define tar_example_usage \
	"$ zcat /tmp/tarball.tar.gz | tar -xf -\n" \
	"$ tar -cf /tmp/tarball.tar /usr/local\n"

#define tee_trivial_usage \
	"[OPTION]... [FILE]..."
#define tee_full_usage \
	"Copy standard input to each FILE, and also to standard output.\n\n" \
	"Options:\n" \
	"\t-a\tappend to the given FILEs, do not overwrite\n" \
	"\t-i\tignore interrupt signals (SIGINT)"
#define tee_example_usage \
	"$ echo \"Hello\" | tee /tmp/foo\n" \
	"$ cat /tmp/foo\n" \
	"Hello\n"

#ifdef CONFIG_FEATURE_TELNET_AUTOLOGIN
#define telnet_trivial_usage \
	"[-a] [-l USER] HOST [PORT]"
#define telnet_full_usage \
	"Telnet is used to establish interactive communication with another\n" \
	"computer over a network using the TELNET protocol.\n\n" \
	"Options:\n" \
	"\t-a\t\tAttempt an automatic login with the USER variable\n" \
	"\t-l USER\t\tAttempt an automatic login with the USER argument\n" \
	"\tHOST\t\tThe official name, alias or the IP address of the\n" \
	"\t\t\tremote host.\n" \
	"\tPORT\t\tThe remote port number to connect to.  If it is not\n" \
	"\t\t\tspecified, the default telnet (23) port is used."
#else
#define telnet_trivial_usage \
	"HOST [PORT]"
#define telnet_full_usage \
	"Telnet is used to establish interactive communication with another\n" \
	"computer over a network using the TELNET protocol."
#endif

#ifdef CONFIG_FEATURE_TELNETD_INETD
#define telnetd_trivial_usage \
	"(inetd mode) [OPTION]"
#define telnetd_full_usage \
	"Telnetd uses incoming TELNET connections via inetd.\n" \
	"Options:\n" \
	"\t-l LOGIN\texec LOGIN on connect (default /bin/sh)\n" \
	"\t-f issue_file\tDisplay issue_file instead of /etc/issue"
#else
#define telnetd_trivial_usage \
	"[OPTION]"
#define telnetd_full_usage \
	"Telnetd listens for incoming TELNET connections on PORT.\n" \
	"Options:\n" \
	"\t-p PORT\tlisten for connections on PORT (default 23)\n" \
	"\t-l LOGIN\texec LOGIN on connect (default /bin/sh)\n" \
	"\t-f issue_file\tDisplay issue_file instead of /etc/issue"
#endif

#define test_trivial_usage \
	"EXPRESSION\n  or   [ EXPRESSION ]"
#define test_full_usage \
	"Checks file types and compares values returning an exit\n" \
	"code determined by the value of EXPRESSION."
#define test_example_usage \
	"$ test 1 -eq 2\n" \
	"$ echo $?\n" \
	"1\n" \
	"$ test 1 -eq 1\n" \
	"$ echo $?\n" \
	"0\n" \
	"$ [ -d /etc ]\n" \
	"$ echo $?\n" \
	"0\n" \
	"$ [ -d /junk ]\n" \
	"$ echo $?\n" \
	"1\n"

#ifdef CONFIG_FEATURE_TFTP_GET
#  define USAGE_TFTP_GET(a) a
#else
#  define USAGE_TFTP_GET(a)
#endif
#ifdef CONFIG_FEATURE_TFTP_PUT
#  define USAGE_TFTP_PUT(a) a
#else
#  define USAGE_TFTP_PUT(a)
#endif
#ifdef CONFIG_FEATURE_TFTP_BLOCKSIZE
#  define USAGE_TFTP_BS(a) a
#else
#  define USAGE_TFTP_BS(a)
#endif

#define tftp_trivial_usage \
	"[OPTION]... HOST [PORT]"
#define tftp_full_usage \
	"Transfers a file from/to a tftp server using \"octet\" mode.\n\n" \
	"Options:\n" \
	"\t-l FILE\tLocal FILE\n" \
	"\t-r FILE\tRemote FILE" \
	USAGE_TFTP_GET( \
	"\n\t-g\tGet file" \
	) \
	USAGE_TFTP_PUT( \
	"\n\t-p\tPut file" \
	) \
	USAGE_TFTP_BS( \
	"\n\t-b SIZE\tTransfer blocks of SIZE octets" \
	)
#define time_trivial_usage \
	"[OPTION]... COMMAND [ARGS...]"
#define time_full_usage \
	"Runs the program COMMAND with arguments ARGS.  When COMMAND finishes,\n" \
	"COMMAND's resource usage information is displayed\n\n" \
	"Options:\n" \
	"\t-v\tDisplays verbose resource usage information"

#define top_trivial_usage \
	"[-d <seconds>]"
#define top_full_usage \
	"top provides an view of processor activity in real time.\n" \
	"This utility reads the status for all processes in /proc each <seconds>\n" \
	"and shows the status for however many processes will fit on the screen.\n" \
	"This utility will not show processes that are started after program startup,\n" \
	"but it will show the EXIT status for and PIDs that exit while it is running."

#define touch_trivial_usage \
	"[-c] FILE [FILE ...]"
#define touch_full_usage \
	"Update the last-modified date on the given FILE[s].\n\n" \
	"Options:\n" \
	"\t-c\tDo not create any files"
#define touch_example_usage \
	"$ ls -l /tmp/foo\n" \
	"/bin/ls: /tmp/foo: No such file or directory\n" \
	"$ touch /tmp/foo\n" \
	"$ ls -l /tmp/foo\n" \
	"-rw-rw-r--    1 andersen andersen        0 Apr 15 01:11 /tmp/foo\n"

#define tr_trivial_usage \
	"[-cds] STRING1 [STRING2]"
#define tr_full_usage \
	"Translate, squeeze, and/or delete characters from\n" \
	"standard input, writing to standard output.\n\n" \
	"Options:\n" \
	"\t-c\ttake complement of STRING1\n" \
	"\t-d\tdelete input characters coded STRING1\n" \
	"\t-s\tsqueeze multiple output characters of STRING2 into one character"
#define tr_example_usage \
	"$ echo \"gdkkn vnqkc\" | tr [a-y] [b-z]\n" \
	"hello world\n"

#define traceroute_trivial_usage \
	"[-FIldnrv] [-f 1st_ttl] [-m max_ttl] [-p port#] [-q nqueries]\n" \
	"\t[-s src_addr] [-t tos] [-w wait] [-g gateway] [-i iface]\n" \
	"\t[-z pausemsecs] host [data size]"
#define traceroute_full_usage \
	"trace the route ip packets follow going to \"host\"\n" \
	"Options:\n" \
	"\t-F\tSet the don't fragment bit\n" \
	"\t-I\tUse ICMP ECHO instead of UDP datagrams\n" \
	"\t-l\tDisplay the ttl value of the returned packet\n" \
	"\t-d\tSet SO_DEBUG options to socket\n" \
	"\t-n\tPrint hop addresses numerically rather than symbolically\n" \
	"\t-r\tBypass the normal routing tables and send directly to a host\n" \
	"\t-v\tVerbose output\n" \
	"\t-m max_ttl\tSet the max time-to-live (max number of hops)\n" \
	"\t-p port#\tSet the base UDP port number used in probes\n" \
	"\t\t(default is 33434)\n" \
	"\t-q nqueries\tSet the number of probes per ``ttl'' to nqueries\n" \
	"\t\t(default is 3)\n" \
	"\t-s src_addr\tUse the following IP address as the source address\n" \
	"\t-t tos\tSet the type-of-service in probe packets to the following value\n" \
	"\t\t(default 0)\n" \
	"\t-w wait\tSet the time (in seconds) to wait for a response to a probe\n" \
	"\t\t(default 3 sec.)\n" \
	"\t-g\tSpecify a loose source route gateway (8 maximum)" 


#define true_trivial_usage \
	""
#define true_full_usage \
	"Return an exit code of TRUE (0)."
#define true_example_usage \
	"$ true\n" \
	"$ echo $?\n" \
	"0\n"

#define tty_trivial_usage \
	""
#define tty_full_usage \
	"Print the file name of the terminal connected to standard input.\n\n" \
	"Options:\n" \
	"\t-s\tprint nothing, only return an exit status"
#define tty_example_usage \
	"$ tty\n" \
	"/dev/tty2\n"

#define tune2fs_trivial_usage \
	"[-c max-mounts-count] [-e errors-behavior] [-g group] " \
	"[-i interval[d|m|w]] [-j] [-J journal-options] [-l] [-s sparse-flag] " \
	"[-m reserved-blocks-percent] [-o [^]mount-options[,...]] " \
	"[-r reserved-blocks-count] [-u user] [-C mount-count] " \
	"[-L volume-label] [-M last-mounted-dir] [-O [^]feature[,...]] " \
	"[-T last-check-time] [-U UUID] device"
#define tune2fs_full_usage \
	"Adjust filesystem options on ext[23] filesystems.\n\n"

#define udhcpc_trivial_usage \
	"[-Cfbnqv] [-c CLIENTID] [-H HOSTNAME] [-i INTERFACE]\n[-p pidfile] [-r IP] [-s script]"
#define udhcpc_full_usage \
	"\t-c,\t--clientid=CLIENTID\tSet client identifier\n" \
	"\t-C,\t--clientid-none\tSuppress default client identifier\n" \
	"\t-H,\t--hostname=HOSTNAME\tClient hostname\n" \
	"\t-h,\t                   \tAlias for -H\n" \
	"\t-f,\t--foreground\tDo not fork after getting lease\n" \
	"\t-b,\t--background\tFork to background if lease cannot be immediately negotiated\n" \
	"\t-i,\t--interface=INTERFACE\tInterface to use (default: eth0)\n" \
	"\t-n,\t--now\tExit with failure if lease cannot be immediately negotiated\n" \
	"\t-p,\t--pidfile=file\tStore process ID of daemon in file\n" \
	"\t-q,\t--quit\tQuit after obtaining lease\n" \
	"\t-r,\t--request=IP\tIP address to request (default: none)\n" \
	"\t-s,\t--script=file\tRun file at dhcp events (default: /usr/share/udhcpc/default.script)\n" \
	"\t-v,\t--version\tDisplay version"

#define udhcpd_trivial_usage \
	"[configfile]\n" \

#define udhcpd_full_usage \
	""

#ifdef CONFIG_FEATURE_MOUNT_FORCE
#  define USAGE_MOUNT_FORCE(a) a
#else
#  define USAGE_MOUNT_FORCE(a)
#endif
#define umount_trivial_usage \
	"[flags] FILESYSTEM|DIRECTORY"
#define umount_full_usage \
	"Unmount file systems\n" \
	"\nFlags:\n" "\t-a\tUnmount all file systems" \
	USAGE_MTAB(" in /etc/mtab\n\t-n\tDon't erase /etc/mtab entries") \
	"\n\t-r\tTry to remount devices as read-only if mount is busy" \
	USAGE_MOUNT_FORCE("\n\t-f\tForce umount (i.e., unreachable NFS server)") \
	USAGE_MOUNT_LOOP("\n\t-l\tDo not free loop device (if a loop device has been used)")
#define umount_example_usage \
	"$ umount /dev/hdc1 \n"

#define uname_trivial_usage \
	"[OPTION]..."
#define uname_full_usage \
	"Print certain system information.  With no OPTION, same as -s.\n\n" \
	"Options:\n" \
	"\t-a\tprint all information\n" \
	"\t-m\tthe machine (hardware) type\n" \
	"\t-n\tprint the machine's network node hostname\n" \
	"\t-r\tprint the operating system release\n" \
	"\t-s\tprint the operating system name\n" \
	"\t-p\tprint the host processor type\n" \
	"\t-v\tprint the operating system version"
#define uname_example_usage \
	"$ uname -a\n" \
	"Linux debian 2.4.23 #2 Tue Dec 23 17:09:10 MST 2003 i686 GNU/Linux\n"

#define uncompress_trivial_usage \
	"[-c] [-f] [ name ... ]"
#define uncompress_full_usage \
	"Uncompress .Z file[s]\n" \
	"Options:\n" \
	"\t-c\textract to stdout\n" \
	"\t-f\tforce overwrite an existing file"

#define uniq_trivial_usage \
	"[-fscdu]... [INPUT [OUTPUT]]"
#define uniq_full_usage \
	"Discard all but one of successive identical lines from INPUT\n" \
	"(or standard input), writing to OUTPUT (or standard output).\n\n" \
	"Options:\n" \
	"\t-c\tprefix lines by the number of occurrences\n" \
	"\t-d\tonly print duplicate lines\n" \
	"\t-u\tonly print unique lines\n" \
	"\t-f N\tskip the first N fields\n" \
	"\t-s N\tskip the first N chars (after any skipped fields)"
#define uniq_example_usage \
	"$ echo -e \"a\\na\\nb\\nc\\nc\\na\" | sort | uniq\n" \
	"a\n" \
	"b\n" \
	"c\n"

#define unix2dos_trivial_usage \
	"[option] [FILE]"
#define unix2dos_full_usage \
	"Converts FILE from unix format to dos format.  When no option\n" \
	"is given, the input is converted to the opposite output format.\n" \
	"When no file is given, uses stdin for input and stdout for output.\n" \
	"Options:\n" \
	"\t-u\toutput will be in UNIX format\n" \
	"\t-d\toutput will be in DOS format"

#define unzip_trivial_usage \
	"[-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]"
#define unzip_full_usage \
	"Extracts files from ZIP archives.\n\n" \
	"Options:\n" \
	"\t-l\tlist archive contents (short form)\n" \
	"\t-n\tnever overwrite existing files (default)\n" \
	"\t-o\toverwrite files without prompting\n" \
	"\t-p\tsend output to stdout\n" \
	"\t-q\tbe quiet\n" \
	"\t-x\texclude these files\n" \
	"\t-d\textract files into this directory"

#define uptime_trivial_usage \
	""
#define uptime_full_usage \
	"Display the time since the last boot."
#define uptime_example_usage \
	"$ uptime\n" \
	"  1:55pm  up  2:30, load average: 0.09, 0.04, 0.00\n"

#define usleep_trivial_usage \
	"N"
#define usleep_full_usage \
	"Pause for N microseconds."
#define usleep_example_usage \
	"$ usleep 1000000\n" \
	"[pauses for 1 second]\n"

#define uudecode_trivial_usage \
	"[FILE]..."
#define uudecode_full_usage \
	"Uudecode a file that is uuencoded.\n\n" \
	"Options:\n" \
	"\t-o FILE\tdirect output to FILE"
#define uudecode_example_usage \
	"$ uudecode -o busybox busybox.uu\n" \
	"$ ls -l busybox\n" \
	"-rwxr-xr-x   1 ams      ams        245264 Jun  7 21:35 busybox\n"

#define uuencode_trivial_usage \
	"[OPTION] [INFILE] REMOTEFILE"
#define uuencode_full_usage \
	"Uuencode a file.\n\n" \
	"Options:\n" \
	"\t-m\tuse base64 encoding per RFC1521"
#define uuencode_example_usage \
	"$ uuencode busybox busybox\n" \
	"begin 755 busybox\n" \
	"<encoded file snipped>\n" \
	"$ uudecode busybox busybox > busybox.uu\n" \
	"$\n"

#define vconfig_trivial_usage \
	"COMMAND [OPTIONS] ..."
#define vconfig_full_usage \
	"vconfig lets you create and remove virtual ethernet devices.\n\n" \
	"Options:\n" \
	"\tadd             [interface-name] [vlan_id]\n" \
	"\trem             [vlan-name]\n" \
	"\tset_flag        [interface-name] [flag-num]       [0 | 1]\n" \
	"\tset_egress_map  [vlan-name]      [skb_priority]   [vlan_qos]\n" \
	"\tset_ingress_map [vlan-name]      [skb_priority]   [vlan_qos]\n" \
	"\tset_name_type   [name-type]"

#define vi_trivial_usage \
	"[OPTION] [FILE]..."
#define vi_full_usage \
	"edit FILE.\n\n" \
	"Options:\n" \
	"\t-R\tRead-only- do not write to the file"

#define vlock_trivial_usage \
	"[OPTIONS]"
#define vlock_full_usage \
	"Lock a virtual terminal.  A password is required to unlock\n" \
	"Options:\n" \
	"\t-a\tLock all VTs"

#define watch_trivial_usage \
	"[-n <seconds>] COMMAND..."
#define watch_full_usage \
	"Executes a program periodically.\n" \
	"Options:\n" \
	"\t-n\tLoop period in seconds - default is 2"
#define watch_example_usage \
	"$ watch date\n" \
	"Mon Dec 17 10:31:40 GMT 2000\n" \
	"Mon Dec 17 10:31:42 GMT 2000\n" \
	"Mon Dec 17 10:31:44 GMT 2000"

#define watchdog_trivial_usage \
	"[-t <seconds>] DEV"
#define watchdog_full_usage \
	"Periodically write to watchdog device DEV.\n" \
	"Options:\n" \
	"\t-t\tTimer period in seconds - default is 30"

#define wc_trivial_usage \
	"[OPTION]... [FILE]..."
#define wc_full_usage \
	"Print line, word, and byte counts for each FILE, and a total line if\n" \
	"more than one FILE is specified.  With no FILE, read standard input.\n\n" \
	"Options:\n" \
	"\t-c\tprint the byte counts\n" \
	"\t-l\tprint the newline counts\n" \
	"\t-L\tprint the length of the longest line\n" \
	"\t-w\tprint the word counts"
#define wc_example_usage \
	"$ wc /etc/passwd\n" \
	"     31      46    1365 /etc/passwd\n"

#define wget_trivial_usage \
	"[-c|--continue] [-q|--quiet] [-O|--output-document file]\n" \
	"\t\t[--header 'header: value'] [-Y|--proxy on/off] [-P DIR] url"
#define wget_full_usage \
	"wget retrieves files via HTTP or FTP\n\n" \
	"Options:\n" \
	"\t-c\tcontinue retrieval of aborted transfers\n" \
	"\t-q\tquiet mode - do not print\n" \
	"\t-P\tSet directory prefix to DIR\n" \
	"\t-O\tsave to filename ('-' for stdout)\n" \
	"\t-Y\tuse proxy ('on' or 'off')"

#define which_trivial_usage \
	"[COMMAND ...]"
#define which_full_usage \
	"Locates a COMMAND."
#define which_example_usage \
	"$ which login\n" \
	"/bin/login\n"

#define who_trivial_usage \
	" "
#define who_full_usage \
	"Prints the current user names and related information"

#define whoami_trivial_usage \
	""
#define whoami_full_usage \
	"Prints the user name associated with the current effective user id."

#ifdef CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION
#define USAGE_XARGS_CONFIRMATION(a) a
#else
#define USAGE_XARGS_CONFIRMATION(a)
#endif
#ifdef CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT
#define USAGE_XARGS_TERMOPT(a) a
#else
#define USAGE_XARGS_TERMOPT(a)
#endif
#ifdef CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM
#define USAGE_XARGS_ZERO_TERM(a) a
#else
#define USAGE_XARGS_ZERO_TERM(a)
#endif


#define xargs_trivial_usage \
	"[COMMAND] [OPTIONS] [ARGS...]"
#define xargs_full_usage \
	"Executes COMMAND on every item given by standard input.\n\n" \
	"Options:\n" \
	USAGE_XARGS_CONFIRMATION("\t-p\tPrompt the user about whether to run each command\n") \
	"\t-r\tDo not run command for empty readed lines\n" \
	USAGE_XARGS_TERMOPT("\t-x\tExit if the size is exceeded\n") \
	USAGE_XARGS_ZERO_TERM("\t-0\tInput filenames are terminated by a null character\n") \
	"\t-t\tPrint the command line on stderr before executing it"
#define xargs_example_usage \
	"$ ls | xargs gzip\n" \
	"$ find . -name '*.c' -print | xargs rm\n"

#define yes_trivial_usage \
	"[OPTION]... [STRING]..."
#define yes_full_usage \
	"Repeatedly outputs a line with all specified STRING(s), or 'y'."

#define zcat_trivial_usage \
	"FILE"
#define zcat_full_usage \
	"Uncompress to stdout."

#define zcip_trivial_usage \
	"[OPTIONS] ifname script"
#define zcip_full_usage \
	"zcip manages a ZeroConf IPv4 link-local address.\n" \
	"Options:\n" \
	"\t-f              foreground mode\n" \
	"\t-q              quit after address (no daemon)\n" \
	"\t-r 169.254.x.x  request this address first\n" \
	"\t-v              verbose; show version\n"

#endif /* __BB_USAGE_H__ */
