/* vi: set sw=8 ts=8: */
/*
 * This file suffers from chronically incorrect tabification
 * of messages. Before editing this file:
 * 1. Switch you editor to 8-space tab mode.
 * 2. Do not use \t in messages, use real tab character.
 * 3. Start each source line with message as follows:
 *    |<7 spaces>"text with tabs"....
 */

#ifndef __BB_USAGE_H__
#define __BB_USAGE_H__

#define addgroup_trivial_usage \
       "[-g GID]"USE_FEATURE_ADDUSER_TO_GROUP(" [user_name]")" group_name"
#define addgroup_full_usage \
       "Add a group to the system"USE_FEATURE_ADDUSER_TO_GROUP(" or add an user to a group") \
       "\n\nOptions:\n" \
       "	-g GID	Group id"

#define adduser_trivial_usage \
       "[OPTIONS] user_name"
#define adduser_full_usage \
       "Add a user to the system" \
       "\n\nOptions:\n" \
       "	-h DIR		Home directory\n" \
       "	-g GECOS	GECOS field\n" \
       "	-s SHELL	Login shell\n" \
       "	-G GROUP	Add user to existing group\n" \
       "	-S		Create a system user\n" \
       "	-D		Do not assign a password\n" \
       "	-H		Do not create home directory"

#define adjtimex_trivial_usage \
       "[-q] [-o offset] [-f frequency] [-p timeconstant] [-t tick]"
#define adjtimex_full_usage \
       "Read and optionally set system timebase parameters.\n" \
       "See adjtimex(2)." \
       "\n\nOptions:\n" \
       "	-q		Quiet\n" \
       "	-o offset	Time offset, microseconds\n" \
       "	-f frequency	Frequency adjust, integer kernel units (65536 is 1ppm)\n" \
       "			(positive values make clock run faster)\n" \
       "	-t tick		Microseconds per tick, usually 10000\n" \
       "	-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\nOptions:\n" \
       "	-o	Preserve original dates\n" \
       "	-p	Extract to stdout\n" \
       "	-t	List\n" \
       "	-x	Extract\n" \
       "	-v	Verbose"

#define arp_trivial_usage \
       "\n" \
       "[-vn]	[-H type] [-i if] -a [hostname]\n" \
       "[-v]		  [-i if] -d hostname [pub]\n" \
       "[-v]	[-H type] [-i if] -s hostname hw_addr [temp]\n" \
       "[-v]	[-H type] [-i if] -s hostname hw_addr [netmask nm] pub\n" \
       "[-v]	[-H type] [-i if] -Ds hostname ifa [netmask nm] pub\n"
#define arp_full_usage \
       "Manipulate the system ARP cache" \
       "\n\nOptions:" \
       "\n	-a		Display (all) hosts" \
       "\n	-s		Set a new ARP entry" \
       "\n	-d		Delete a specified entry" \
       "\n	-v		Verbose" \
       "\n	-n		Don't resolve names" \
       "\n	-i if		Network interface (e.g. eth0)" \
       "\n	-D		Read <hwaddr> from given device" \
       "\n	-A, -p		Protocol family" \
       "\n	-H hwtype	Hardware address type"

#define arping_trivial_usage \
       "[-fqbDUA] [-c count] [-w timeout] [-I dev] [-s sender] target"
#define arping_full_usage \
       "Ping hosts by ARP requests/replies" \
       "\n\nOptions:\n" \
       "	-f		Quit on first ARP reply\n" \
       "	-q		Quiet\n" \
       "	-b		Keep broadcasting, don't go unicast\n" \
       "	-D		Duplicated address detection mode\n" \
       "	-U		Unsolicited ARP mode, update your neighbors\n" \
       "	-A		ARP answer mode, update your neighbors\n" \
       "	-c N		Stop after sending N ARP requests\n" \
       "	-w timeout	Time to wait for ARP reply, in seconds\n" \
       "	-I dev		Interface to use (default eth0)\n" \
       "	-s sender	Sender IP address\n" \
       "	target		Target IP address"

#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" \
       "	-v var=val	Set variable\n" \
       "	-F sep		Use sep as field separator\n" \
       "	-f file		Read program from file"

#define basename_trivial_usage \
       "FILE [SUFFIX]"
#define basename_full_usage \
       "Strip directory path and suffixes from FILE.\n" \
       "If specified, also remove 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\nOptions:\n" \
       "	-c	Write output to standard output\n" \
       "	-f	Force"

#define bzip2_trivial_usage \
       "[OPTION]... [FILE]..."
#define bzip2_full_usage \
       "Compress FILE(s) with bzip2 algorithm.\n" \
       "When FILE is '-' or unspecified, reads standard input. Implies -c." \
       "\n\nOptions:" \
       "\n	-c	Write output to standard output instead of FILE.bz2" \
       "\n	-d	Decompress" \
       "\n	-f	Force" \
       "\n	-1..-9	Compression level"

#define busybox_notes_usage \
       "Hello world!\n"

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

#define unlzma_trivial_usage \
       "[OPTION]... [FILE]"
#define unlzma_full_usage \
       "Uncompress FILE (or standard input if FILE is '-' or omitted)" \
       "\n\nOptions:\n" \
       "	-c	Write output to standard output\n" \
       "	-f	Force"

#define lzmacat_trivial_usage \
       "FILE"
#define lzmacat_full_usage \
       "Uncompress to stdout"

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

#define cat_trivial_usage \
       "[-u] [FILE]..."
#define cat_full_usage \
       "Concatenate FILE(s) and print them to stdout" \
       "\n\nOptions:" \
       "\n	-u	Use unbuffered i/o (ignored)"
#define cat_example_usage \
       "$ cat /proc/uptime\n" \
       "110716.72 17.67"

#define catv_trivial_usage \
       "[-etv] [FILE]..."
#define catv_full_usage \
       "Display nonprinting characters as ^x or M-x" \
       "\n\nOptions:\n" \
       "	-e	End each line with $\n" \
       "	-t	Show tabs as ^I\n" \
       "	-v	Don't use ^x or M-x escapes"
#define chattr_trivial_usage \
       "[-R] [-+=AacDdijsStTu] [-v version] files..."
#define chattr_full_usage \
       "Change file attributes on an ext2 fs\n\n" \
       "Modifiers:\n" \
       "	-	Remove attributes\n" \
       "	+	Add attributes\n" \
       "	=	Set attributes\n" \
       "Attributes:\n" \
       "	A	Don't track atime\n" \
       "	a	Append mode only\n" \
       "	c	Enable compress\n" \
       "	D	Write dir contents synchronously\n" \
       "	d	Do not backup with dump\n" \
       "	i	Cannot be modified (immutable)\n" \
       "	j	Write all data to journal first\n" \
       "	s	Zero disk storage when deleted\n" \
       "	S	Write file contents synchronously\n" \
       "	t	Disable tail-merging of partial blocks with other files\n" \
       "	u	Allow file to be undeleted\n" \
       "Options:\n" \
       "	-R	Recursively list subdirectories\n" \
       "	-v	Set the file's version/generation number"

#define chcon_trivial_usage \
       "[OPTIONS] CONTEXT FILE..." \
       "\n	chcon [OPTIONS] [-u USER] [-r ROLE] [-l RANGE] [-t TYPE] FILE..." \
	USE_FEATURE_CHCON_LONG_OPTIONS( \
       "\n	chcon [OPTIONS] --reference=RFILE FILE..." \
	)
#define chcon_full_usage \
       "Change the security context of each FILE to CONTEXT\n" \
	USE_FEATURE_CHCON_LONG_OPTIONS( \
       "\n	-v,--verbose		Verbose" \
       "\n	-c,--changes		Report changes made" \
       "\n	-h,--no-dereference	Affect symlinks instead of their targets" \
       "\n	-f,--silent,--quiet	Suppress most error messages" \
       "\n	--reference=RFILE	Use RFILE's group instead of using a CONTEXT value" \
       "\n	-u,--user=USER		Set user USER in the target security context" \
       "\n	-r,--role=ROLE		Set role ROLE in the target security context" \
       "\n	-t,--type=TYPE		Set type TYPE in the target security context" \
       "\n	-l,--range=RANGE	Set range RANGE in the target security context" \
       "\n	-R,--recursive		Recurse subdirectories" \
	) \
	SKIP_FEATURE_CHCON_LONG_OPTIONS( \
       "\n	-v	Verbose" \
       "\n	-c	Report changes made" \
       "\n	-h	Affect symlinks instead of their targets" \
       "\n	-f	Suppress most error messages" \
       "\n	-u USER	Set user USER in the target security context" \
       "\n	-r ROLE	Set role ROLE in the target security context" \
       "\n	-t TYPE	Set type TYPE in the target security context" \
       "\n	-l RNG	Set range RNE in the target security context" \
       "\n	-R	Recurse subdirectories" \
	)


#define chmod_trivial_usage \
       "[-R"USE_DESKTOP("cvf")"] 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\nOptions:" \
       "\n	-R	Recurse directories" \
	USE_DESKTOP( \
       "\n	-c	List changed files" \
       "\n	-v	List all files" \
       "\n	-f	Hide errors" \
	)
#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 chgrp_trivial_usage \
       "[-RhLHP"USE_DESKTOP("cvf")"]... GROUP FILE..."
#define chgrp_full_usage \
       "Change the group membership of each FILE to GROUP" \
       "\n\nOptions:" \
       "\n	-R	Recurse directories" \
       "\n	-h	Affect symlinks instead of symlink targets" \
       "\n	-L	Traverse all symlinks to directories" \
       "\n	-H	Traverse symlinks on command line only" \
       "\n	-P	Do not traverse symlinks (default)" \
	USE_DESKTOP( \
       "\n	-c	List changed files" \
       "\n	-v	Verbose" \
       "\n	-f	Hide errors" \
	)
#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 chown_trivial_usage \
       "[-RhLHP"USE_DESKTOP("cvf")"]... OWNER[<.|:>[GROUP]] FILE..."
#define chown_full_usage \
       "Change the owner and/or group of each FILE to OWNER and/or GROUP" \
       "\n\nOptions:" \
       "\n	-R	Recurse directories" \
       "\n	-h	Affect symlinks instead of symlink targets" \
       "\n	-L	Traverse all symlinks to directories" \
       "\n	-H	Traverse symlinks on command line only" \
       "\n	-P	Do not traverse symlinks (default)" \
	USE_DESKTOP( \
       "\n	-c	List changed files" \
       "\n	-v	List all files" \
       "\n	-f	Hide errors" \
	)
#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 chpst_trivial_usage \
       "[-vP012] [-u user[:group]] [-U user[:group]] [-e dir] " \
       "[-/ dir] [-n nice] [-m bytes] [-d bytes] [-o files] " \
       "[-p processes] [-f bytes] [-c bytes] prog args"
#define chpst_full_usage \
       "Change the process state and run specified program" \
       "\n\nOptions:\n" \
       "	-u user[:grp]	Set uid and gid\n" \
       "	-U user[:grp]	Set environment variables UID and GID\n" \
       "	-e dir		Set environment variables as specified by files\n" \
       "			in the directory: file=1st_line_of_file\n" \
       "	-/ dir		Chroot to dir\n" \
       "	-n inc		Add inc to nice value\n" \
       "	-m bytes	Limit data segment, stack segment, locked physical pages,\n" \
       "			and total of all segment per process to bytes bytes each\n" \
       "	-d bytes	Limit data segment\n" \
       "	-o n		Limit the number of open file descriptors per process to n\n" \
       "	-p n		Limit number of processes per uid to n\n" \
       "	-f bytes	Limit output file size to bytes bytes\n" \
       "	-c bytes	Limit core file size to bytes bytes\n" \
       "	-v		Verbose\n" \
       "	-P		Run prog in a new process group\n" \
       "	-0		Close standard input\n" \
       "	-1		Close standard output\n" \
       "	-2		Close standard error"
#define setuidgid_trivial_usage \
       "account prog args"
#define setuidgid_full_usage \
       "Set uid and gid to account's uid and gid, removing all supplementary\n" \
       "groups, then run prog"
#define envuidgid_trivial_usage \
       "account prog args"
#define envuidgid_full_usage \
       "Set $UID to account's uid and $GID to account's gid, then run prog"
#define envdir_trivial_usage \
       "dir prog args"
#define envdir_full_usage \
       "Set various environment variables as specified by files\n" \
       "in the directory dir, then run prog"
#define softlimit_trivial_usage \
       "[-a allbytes] [-c corebytes] [-d databytes] [-f filebytes] " \
       "[-l lockbytes] [-m membytes] [-o openfiles] [-p processes] " \
       "[-r residentbytes] [-s stackbytes] [-t cpusecs] prog args"
#define softlimit_full_usage \
       "Set soft resource limits, then run prog" \
       "\n\nOptions:\n" \
       "	-m n	Same as -d n -s n -l n -a n\n" \
       "	-d n	Limit the data segment per process to n bytes\n" \
       "	-s n	Limit the stack segment per process to n bytes\n" \
       "	-l n	Limit the locked physical pages per process to n bytes\n" \
       "	-a n	Limit the total of all segments per process to n bytes\n" \
       "	-o n	Limit the number of open file descriptors per process to n\n" \
       "	-p n	Limit the number of processes per uid to n\n" \
       "Options controlling file sizes:\n" \
       "	-f n	Limit output file sizes to n bytes\n" \
       "	-c n	Limit core file sizes to n bytes\n" \
       "Efficiency opts:\n" \
       "	-r n	Limit the resident set size to n bytes. This limit is not\n" \
       "		enforced unless physical memory is full\n" \
       "	-t n	Limit the CPU time to n seconds. This limit is not enforced\n" \
       "		except that the process receives a SIGXCPU signal after n seconds\n" \
       "\n" \
       "Some options may have no effect on some operating systems\n" \
       "n may be =, indicating that soft limit should be set equal to hard limit"

#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 \
       "Change the foreground virtual terminal to /dev/ttyN"

#define cksum_trivial_usage \
       "FILES..."
#define cksum_full_usage \
       "Calculate the CRC32 checksums of FILES"

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

#define cmp_trivial_usage \
       "[-l] [-s] FILE1 [FILE2" USE_DESKTOP(" [SKIP1 [SKIP2]") "]]"
#define cmp_full_usage \
       "Compares FILE1 vs stdin if FILE2 is not specified" \
       "\n\nOptions:\n" \
       "	-l	Write the byte numbers (decimal) and values (octal)\n" \
       "		for all differing bytes\n" \
       "	-s	Quiet"

#define comm_trivial_usage \
       "[-123] FILE1 FILE2"
#define comm_full_usage \
       "Compare FILE1 to FILE2, or to stdin if - is specified" \
       "\n\nOptions:\n" \
       "	-1	Suppress lines unique to FILE1\n" \
       "	-2	Suppress lines unique to FILE2\n" \
       "	-3	Suppress lines common to both files"

#define bbconfig_trivial_usage \
       ""
#define bbconfig_full_usage \
       "Print the config file which built busybox"

#define bbsh_trivial_usage \
       "[FILE]...\n" \
       "or: bbsh -c command [args]..."
#define bbsh_full_usage \
       "The bbsh shell (command interpreter)"

#define chrt_trivial_usage \
       "[OPTION]... [prio] [pid | command [arg]...]"
#define chrt_full_usage \
       "manipulate real-time attributes of a process" \
       "\n\nOptions:\n" \
       "	-p	operate on pid\n" \
       "	-r	set scheduling policy to SCHED_RR\n" \
       "	-f	set scheduling policy to SCHED_FIFO\n" \
       "	-o	set scheduling policy to SCHED_OTHER\n" \
       "	-m	show min and max priorities"

#define chrt_example_usage \
       "$ chrt -r 4 sleep 900; x=$!\n" \
       "$ chrt -f -p 3 $x\n" \
       "You need CAP_SYS_NICE privileges to set scheduling attributes of a process"

#define cp_trivial_usage \
       "[OPTION]... SOURCE DEST"
#define cp_full_usage \
       "Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY" \
       "\n\nOptions:" \
       "\n	-a	Same as -dpR" \
	USE_SELINUX( \
       "\n	-c	Preserves security context" \
	) \
       "\n	-d,-P	Preserve links" \
       "\n	-H,-L	Dereference all symlinks (default)" \
       "\n	-p	Preserve file attributes if possible" \
       "\n	-f	Force overwrite" \
       "\n	-i	Prompt before overwrite" \
       "\n	-R,-r	Recurse directories" \
       "\n	-l,-s	Create (sym)links"

#define cpio_trivial_usage \
       "-[dimtuv][F cpiofile]"
#define cpio_full_usage \
       "Extract or list files from a cpio archive\n" \
       "Main operation mode:\n" \
       "	d	Make leading directories\n" \
       "	i	Extract\n" \
       "	m	Preserve mtime\n" \
       "	t	List\n" \
       "	v	Verbose\n" \
       "	u	Unconditional overwrite\n" \
       "	F	Input from file"

#define crond_trivial_usage \
       "-d[#] -c crondir -f -b"
#define crond_full_usage \
       "	-d [#] -l [#] -S -L logfile -f -b -c dir\n" \
       "	-d num	Debug level\n" \
       "	-l num	Log level (8 - default)\n" \
       "	-S	Log to syslog (default)\n" \
       "	-L file	Log to file\n" \
       "	-f	Run in foreground\n" \
       "	-b	Run in background (default)\n" \
       "	-c dir	Working dir"

#define crontab_trivial_usage \
       "[-c dir] {file|-}|[-u|-l|-e|-d user]"
#define crontab_full_usage \
       "	file [opts]	Replace crontab from file\n" \
       "	- [opts]	Replace crontab from stdin\n" \
       "	-u user		User\n" \
       "	-l [user]	List crontab for user\n" \
       "	-e [user]	Edit crontab for user\n" \
       "	-d [user]	Delete crontab for user\n" \
       "	-c dir		Crontab directory"

#define cryptpw_trivial_usage \
       "[-a des|md5] [string]"
#define cryptpw_full_usage \
       "Outputs crypted string.\n" \
       "If string isn't supplied on cmdline, reads it from stdin.\n" \
       "\nOptions:" \
       "\n	-a	Algorithm to use (default: md5)"

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

#define date_trivial_usage \
       "[OPTION]... [MMDDhhmm[[CC]YY][.ss]] [+FORMAT]"
#define date_full_usage \
       "Display current time in the given FORMAT, or set system date" \
       "\n\nOptions:\n" \
       "	-R		Outputs RFC-822 compliant date string\n" \
       "	-d STRING	Displays time described by STRING, not 'now'\n" \
	USE_FEATURE_DATE_ISOFMT( \
       "	-I[TIMESPEC]	Outputs an ISO-8601 compliant date/time string\n" \
       "			TIMESPEC='date' (or missing) for date only,\n" \
       "			'hours', 'minutes', or 'seconds' for date and\n" \
       "			time to the indicated precision\n" \
       "	-D hint		Use 'hint' as date format, via strptime()\n" \
	) \
       "	-s STRING	Sets time described by STRING\n" \
       "	-r FILE		Displays the last modification time of FILE\n" \
       "	-u		Prints 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] " USE_FEATURE_DD_IBS_OBS("[ibs=N] [obs=N] ") "[bs=N] [count=N] [skip=N]\n" \
       "	[seek=N]" USE_FEATURE_DD_IBS_OBS(" [conv=notrunc|noerror|sync]")
#define dd_full_usage \
       "Copy a file with converting and formatting" \
       "\n\nOptions:\n" \
       "	if=FILE		Read from FILE instead of stdin\n" \
       "	of=FILE		Write to FILE instead of stdout\n" \
       "	bs=N		Read and write N bytes at a time\n" \
	USE_FEATURE_DD_IBS_OBS( \
       "	ibs=N		Read N bytes at a time\n") \
	USE_FEATURE_DD_IBS_OBS( \
       "	obs=N		Write N bytes at a time\n") \
       "	count=N		Copy only N input blocks\n" \
       "	skip=N		Skip N input blocks\n" \
       "	seek=N		Skip N output blocks\n" \
	USE_FEATURE_DD_IBS_OBS( \
       "	conv=notrunc	Don't truncate output file\n" \
       "	conv=noerror	Continue after read errors\n" \
       "	conv=sync	Pad 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 \
	USE_FEATURE_DEL_USER_FROM_GROUP("[USER] ")"GROUP"
#define delgroup_full_usage \
       "Delete group GROUP from the system" \
	USE_FEATURE_DEL_USER_FROM_GROUP(" or user USER from group GROUP")

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

#define devfsd_trivial_usage \
       "mntpnt [-v]" \
	USE_DEVFSD_FG_NP("[-fg][-np]")
#define devfsd_full_usage \
       "Manage devfs permissions and old device name symlinks" \
       "\n\nOptions:" \
       "\n	mntpnt	The mount point where devfs is mounted" \
       "\n	-v	Print the protocol version numbers for devfsd" \
       "\n		and the kernel-side protocol version and exit" \
	USE_DEVFSD_FG_NP( \
       "\n	-fg	Run in foreground" \
       "\n	-np	Exit after parsing the configuration file" \
       "\n		and processing synthetic REGISTER events," \
       "\n		do not poll for events")

/* -k is accepted but ignored for !HUMAN_READABLE,
 * but we won't mention this (unimportant) */
#if ENABLE_FEATURE_HUMAN_READABLE || ENABLE_FEATURE_DF_INODE
#define DF_HAS_OPTIONS(x) x
#else
#define DF_HAS_OPTIONS(x)
#endif
#define df_trivial_usage \
	DF_HAS_OPTIONS("[-") \
	USE_FEATURE_HUMAN_READABLE("hmk") USE_FEATURE_DF_INODE("i") \
	DF_HAS_OPTIONS("] ") "[FILESYSTEM...]"
#define df_full_usage \
       "Print filesystem usage statistics" \
	DF_HAS_OPTIONS("\n\nOptions:") \
	USE_FEATURE_HUMAN_READABLE( \
       "\n	-h	Human readable (e.g. 1K 243M 2G)" \
       "\n	-m	1024*1024 blocks" \
       "\n	-k	1024 blocks" \
	) \
	USE_FEATURE_DF_INODE( \
       "\n	-i	Inodes" \
	)
#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 dhcprelay_trivial_usage \
       "[client_device_list] [server_device]"
#define dhcprelay_full_usage \
       "Relay dhcp requests from client devices to server device"

#define dhcprelay_trivial_usage \
       "[client_device_list] [server_device]"
#define dhcprelay_full_usage \
       "Relay dhcp requests from client devices to server device"

#define diff_trivial_usage \
       "[-abdiNqrTstw] [-L LABEL] [-S FILE] [-U LINES] FILE1 FILE2"
#define diff_full_usage \
       "Compare files line by line and output the differences between them.\n" \
       "This diff implementation only supports unified diffs." \
       "\n\nOptions:\n" \
       "	-a	Treat all files as text\n" \
       "	-b	Ignore changes in the amount of whitespace\n" \
       "	-d	Try hard to find a smaller set of changes\n" \
       "	-i	Ignore case differences\n" \
       "	-L	Use LABEL instead of the filename in the unified header\n" \
       "	-N	Treat absent files as empty\n" \
       "	-q	Output only whether files differ\n" \
       "	-r	Recursively compare subdirectories\n" \
       "	-S	Start with FILE when comparing directories\n" \
       "	-T	Make tabs line up by prefixing a tab when necessary\n" \
       "	-s	Report when two files are the same\n" \
       "	-t	Expand tabs to spaces in output\n" \
       "	-U	Output LINES lines of context\n" \
       "	-w	Ignore all whitespace"

#define dirname_trivial_usage \
       "FILENAME"
#define dirname_full_usage \
       "Strip 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 \
       "Print or control the kernel ring buffer" \
       "\n\nOptions:\n" \
       "	-c		Clear ring buffer after printing\n" \
       "	-n LEVEL	Set console logging level\n" \
       "	-s SIZE		Buffer size"

#define dnsd_trivial_usage \
       "[-c config] [-t seconds] [-p port] [-i iface-ip] [-d]"
#define dnsd_full_usage \
       "Small and static DNS server daemon" \
       "\n\nOptions:\n" \
       "	-c	Config filename\n" \
       "	-t	TTL in seconds\n" \
       "	-p	Listening port\n" \
       "	-i	Listening ip (default all)\n" \
       "	-d	Daemonize"

#define dos2unix_trivial_usage \
       "[option] [FILE]"
#define dos2unix_full_usage \
       "Convert 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, use stdin for input and stdout for output." \
       "\n\nOptions:\n" \
       "	-u	Output will be in UNIX format\n" \
       "	-d	Output will be in DOS format"

#define dpkg_trivial_usage \
       "[-ilCPru] [-F option] package_name"
#define dpkg_full_usage \
       "Install, remove and manage Debian packages" \
       "\n\nOptions:\n" \
       "	-i		Install the package\n" \
       "	-l		List of installed packages\n" \
       "	-C		Configure an unpackaged package\n" \
       "	-F depends	Ignore dependency problems\n" \
       "	-P		Purge all files of a package\n" \
       "	-r		Remove all but the configuration files for a package\n" \
       "	-u		Unpack 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\nOptions:\n" \
       "	-c	List contents of filesystem tree\n" \
       "	-e	Extract control files to [argument] directory\n" \
       "	-f	Display control field name starting with [argument]\n" \
       "	-x	Extract packages filesystem tree to directory\n" \
       "	-X	Verbose extract"
#define dpkg_deb_example_usage \
       "$ dpkg-deb -X ./busybox_0.48-1_i386.deb /tmp\n"

#define du_trivial_usage \
       "[-aHLdclsx" USE_FEATURE_HUMAN_READABLE("hm") "k] [FILE]..."
#define du_full_usage \
       "Summarize disk space used for each FILE and/or directory.\n" \
       "Disk space is printed in units of " \
	USE_FEATURE_DU_DEFAULT_BLOCKSIZE_1K("1024") \
	SKIP_FEATURE_DU_DEFAULT_BLOCKSIZE_1K("512") \
       " bytes." \
       "\n\nOptions:\n" \
       "	-a	Show sizes of files in addition to directories\n" \
       "	-H	Follow symlinks that are FILE command line args\n" \
       "	-L	Follow all symlinks encountered\n" \
       "	-d N	Limit output to directories (and files with -a) of depth < N\n" \
       "	-c	Output a grand total\n" \
       "	-l	Count sizes many times if hard linked\n" \
       "	-s	Display only a total for each argument\n" \
       "	-x	Skip directories on different filesystems\n" \
	USE_FEATURE_HUMAN_READABLE( \
       "	-h	Print sizes in human readable format (e.g., 1K 243M 2G )\n" \
       "	-m	Print sizes in megabytes\n" \
	) \
       "	-k	Print sizes in kilobytes" \
	USE_FEATURE_DU_DEFAULT_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 \
       "Print 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 \
       "Display DHCP leases granted by udhcpd" \
       "\n\nOptions:\n" \
	USE_GETOPT_LONG( \
       "	-f,--file=FILE	Leases file to load\n" \
       "	-r,--remaining	Interpret lease times as time remaining\n" \
       "	-a,--absolute	Interpret lease times as expire time" \
	) \
	SKIP_GETOPT_LONG( \
       "	-f FILE	Leases file to load\n" \
       "	-r	Interpret lease times as time remaining\n" \
       "	-a	Interpret lease times as expire time" \
	)

#define e2fsck_trivial_usage \
       "[-panyrcdfvstDFSV] [-b superblock] [-B blocksize] " \
       "[-I inode_buffer_blocks] [-P process_inode_size] " \
       "[-l|-L bad_blocks_file] [-C fd] [-j external_journal] " \
       "[-E extended-options] device"
#define e2fsck_full_usage \
       "Check ext2/ext3 file system" \
       "\n\nOptions:\n" \
       "	-p		Automatic repair (no questions)\n" \
       "	-n		Make no changes to the filesystem\n" \
       "	-y		Assume 'yes' to all questions\n" \
       "	-c		Check for bad blocks and add them to the badblock list\n" \
       "	-f		Force checking even if filesystem is marked clean\n" \
       "	-v		Verbose\n" \
       "	-b superblock	Use alternative superblock\n" \
       "	-B blocksize	Force blocksize when looking for superblock\n" \
       "	-j journal	Set location of the external journal\n" \
       "	-l file		Add to badblocks list\n" \
       "	-L file		Set badblocks list"

#define echo_trivial_usage \
	USE_FEATURE_FANCY_ECHO("[-neE] ") "[ARG...]"
#define echo_full_usage \
       "Print the specified ARGs to stdout" \
	USE_FEATURE_FANCY_ECHO( \
       "\n\nOptions:\n" \
       "	-n	Suppress trailing newline\n" \
       "	-e	Interpret backslash-escaped characters (i.e., \\t=tab)\n" \
       "	-E	Disable interpretation of backslash-escaped characters" \
	)
#define echo_example_usage \
       "$ echo \"Erik is cool\"\n" \
       "Erik is cool\n" \
	USE_FEATURE_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] [-T] [DEVICE]"
#define eject_full_usage \
       "Eject specified DEVICE (or default /dev/cdrom)" \
       "\n\nOptions:\n" \
       "	-t	Close tray\n" \
       "	-T	Open/close tray (toggle)"

#define ed_trivial_usage ""
#define ed_full_usage ""

#define env_trivial_usage \
       "[-iu] [-] [name=value]... [command]"
#define env_full_usage \
       "Print the current environment or run a program after setting\n" \
       "up the specified environment" \
       "\n\nOptions:\n" \
       "	-, -i	Start with an empty environment\n" \
       "	-u	Remove 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\nOptions:\n" \
       "	-b		Send wake-up packet to the broadcast address\n" \
       "	-i iface	Use interface ifname instead of the default \"eth0\"\n" \
       "	-p pass		Append the four or six byte password PW to the packet"

#define expand_trivial_usage \
       "[-i] [-t NUM] [FILE|-]"
#define expand_full_usage \
       "Convert tabs to spaces, writing to standard output." \
       "\n\nOptions:" \
	USE_FEATURE_EXPAND_LONG_OPTIONS( \
       "\n	-i,--initial	Do not convert tabs after non blanks" \
       "\n	-t,--tabs=N	Tabstops every N chars" \
	) \
	SKIP_FEATURE_EXPAND_LONG_OPTIONS( \
       "\n	-i	Do not convert tabs after non blanks" \
       "\n	-t	Tabstops every N chars" \
	)

#define expr_trivial_usage \
       "EXPRESSION"
#define expr_full_usage \
       "Print the value of EXPRESSION to standard output.\n\n" \
       "EXPRESSION may be:\n" \
       "	ARG1 | ARG2	ARG1 if it is neither null nor 0, otherwise ARG2\n" \
       "	ARG1 & ARG2	ARG1 if neither argument is null or 0, otherwise 0\n" \
       "	ARG1 < ARG2	1 if ARG1 is less than ARG2, else 0. Similarly:\n" \
       "	ARG1 <= ARG2\n" \
       "	ARG1 = ARG2\n" \
       "	ARG1 != ARG2\n" \
       "	ARG1 >= ARG2\n" \
       "	ARG1 > ARG2\n" \
       "	ARG1 + ARG2	Sum of ARG1 and ARG2. Similarly:\n" \
       "	ARG1 - ARG2\n" \
       "	ARG1 * ARG2\n" \
       "	ARG1 / ARG2\n" \
       "	ARG1 % ARG2\n" \
       "	STRING : REGEXP		Anchored pattern match of REGEXP in STRING\n" \
       "	match STRING REGEXP	Same as STRING : REGEXP\n" \
       "	substr STRING POS LENGTH Substring of STRING, POS counted from 1\n" \
       "	index STRING CHARS	Index in STRING where any CHARS is found, or 0\n" \
       "	length STRING		Length of STRING\n" \
       "	quote TOKEN		Interpret TOKEN as a string, even if\n" \
       "				it is a keyword like 'match' or an\n" \
       "				operator like '/'\n" \
       "	(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 \
       "[-fiw] [-b ADDR] [STRING]"
#define fakeidentd_full_usage \
       "Provide fake ident (auth) service" \
       "\n\nOptions:" \
       "\n	-f	Run in foreground" \
       "\n	-i	Inetd mode" \
       "\n	-w	Inetd 'wait' mode" \
       "\n	-b ADDR	Bind to specified address" \
       "\n	STRING	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" \
       "	# D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz\n" \
       "	geometry 1024 768 1024 768 16\n" \
       "	timings 12714 128 32 16 4 128 4\n" \
       "	accel false\n" \
       "	rgba 5/11,6/5,5/0,0/0\n" \
       "endmode\n"

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

#define fdformat_trivial_usage \
       "[-n] DEVICE"
#define fdformat_full_usage \
       "Format floppy disk" \
       "\n\nOptions:\n" \
       "	-n	Don'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\nOptions:\n" \
       "	-l		List partition table(s)\n" \
       "	-u		Give Start and End in sector (instead of cylinder) units\n" \
       "	-s PARTITION	Give partition size(s) in blocks\n" \
       "	-b 2048		(for certain MO disks) use 2048-byte sectors\n" \
       "	-C CYLINDERS	Set the number of cylinders\n" \
       "	-H HEADS	Set the number of heads\n" \
       "	-S SECTORS	Set the number of sectors\n" \
       "	-v		Give fdisk version"

#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	-follow		Dereference symlinks" \
	USE_FEATURE_FIND_XDEV( \
     "\n	-xdev		Don't descend directories on other filesystems") \
	USE_FEATURE_FIND_MAXDEPTH( \
     "\n	-maxdepth N	Descend at most N levels. -maxdepth 0 applies" \
     "\n			tests/actions to command line arguments only") \
     "\n	-name PATTERN	File name (w/o directory name) matches PATTERN" \
     "\n	-iname PATTERN	Case insensitive -name" \
	USE_FEATURE_FIND_PATH( \
     "\n	-path PATTERN	Path matches PATTERN") \
	USE_FEATURE_FIND_REGEX( \
     "\n	-regex PATTERN	Path matches regex PATTERN") \
	USE_FEATURE_FIND_TYPE( \
     "\n	-type X		File type is X (X is one of: f,d,l,b,c,...)") \
	USE_FEATURE_FIND_PERM( \
     "\n	-perm NNN	Permissions match any of (+NNN), all of (-NNN)," \
     "\n			or exactly (NNN)") \
	USE_FEATURE_FIND_MTIME( \
     "\n	-mtime DAYS	Modified time is greater than (+N), less than (-N)," \
     "\n			or exactly (N) days") \
	USE_FEATURE_FIND_MMIN( \
     "\n	-mmin MINS	Modified time is greater than (+N), less than (-N)," \
     "\n			or exactly (N) minutes") \
	USE_FEATURE_FIND_NEWER( \
     "\n	-newer FILE	Modified time is more recent than FILE's") \
	USE_FEATURE_FIND_INUM( \
     "\n	-inum N		File has inode number N") \
	USE_FEATURE_FIND_USER( \
     "\n	-user NAME	File is owned by user NAME (numeric user ID allowed)") \
	USE_FEATURE_FIND_GROUP( \
     "\n	-group NAME	File belongs to group NAME (numeric group ID allowed)") \
	USE_FEATURE_FIND_DEPTH( \
     "\n	-depth		Process directory name after traversing it") \
	USE_FEATURE_FIND_SIZE( \
     "\n	-size N[bck]	File size is N (c:bytes,k:kbytes,b:512 bytes(def.))." \
     "\n			+/-N: file size is bigger/smaller than N") \
     "\n	-print		Print (default and assumed)" \
	USE_FEATURE_FIND_PRINT0( \
     "\n	-print0		Delimit output with null characters rather than" \
     "\n			newlines") \
	USE_FEATURE_FIND_CONTEXT ( \
     "\n	-context	File has specified security context") \
	USE_FEATURE_FIND_EXEC( \
     "\n	-exec CMD ARG ;	Execute CMD with all instances of {} replaced by the" \
     "\n			matching files") \
	USE_FEATURE_FIND_PRUNE( \
     "\n	-prune		Stop traversing current subtree") \
	USE_FEATURE_FIND_DELETE( \
     "\n	-delete		Delete files, turns on -depth option") \
	USE_FEATURE_FIND_PAREN( \
     "\n	(EXPR)		Group an expression") \

#define find_example_usage \
       "$ find / -name passwd\n" \
       "/etc/passwd\n"

#define fold_trivial_usage \
       "[-bs] [-w WIDTH] [FILE]"
#define fold_full_usage \
       "Wrap input lines in each FILE (standard input by default), writing to\n" \
       "standard output" \
       "\n\nOptions:\n" \
       "	-b	Count bytes rather than columns\n" \
       "	-s	Break at spaces\n" \
       "	-w	Use WIDTH columns instead of 80"

#define free_trivial_usage \
       ""
#define free_full_usage \
       "Display 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 \
       "Free all memory used by the specified ramdisk"
#define freeramdisk_example_usage \
       "$ freeramdisk /dev/ram2\n"

#define fsck_trivial_usage \
       "[-ANPRTV] [-C fd] [-t fstype] [fs-options] [filesys...]"
#define fsck_full_usage \
       "Check and repair filesystems" \
       "\n\nOptions:\n" \
       "	-A	Walk /etc/fstab and check all filesystems\n" \
       "	-N	Don't execute, just show what would be done\n" \
       "	-P	When using -A, check filesystems in parallel\n" \
       "	-R	When using -A, skip the root filesystem\n" \
       "	-T	Don't show title on startup\n" \
       "	-V	Verbose\n" \
       "	-C n	Write status information to specified filedescriptor\n" \
       "	-t type	List of filesystem types to check"

#define fsck_minix_trivial_usage \
       "[-larvsmf] /dev/name"
#define fsck_minix_full_usage \
       "Perform a consistency check for MINIX filesystems" \
       "\n\nOptions:\n" \
       "	-l	List all filenames\n" \
       "	-r	Perform interactive repairs\n" \
       "	-a	Perform automatic repairs\n" \
       "	-v	Verbose\n" \
       "	-s	Output super-block information\n" \
       "	-m	Activate MINIX-like \"mode not cleared\" warnings\n" \
       "	-f	Force 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\nOptions:\n" \
	USE_GETOPT_LONG( \
       "	-c,--continue	Continue previous transfer\n" \
       "	-v,--verbose	Verbose\n" \
       "	-u,--username	Username\n" \
       "	-p,--password	Password\n" \
       "	-P,--port	Port number" \
	) \
	SKIP_GETOPT_LONG( \
       "	-c	Continue previous transfer\n" \
       "	-v	Verbose\n" \
       "	-u	Username\n" \
       "	-p	Password\n" \
       "	-P	Port number" \
	)

#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\nOptions:\n" \
	USE_GETOPT_LONG( \
       "	-v,--verbose	Verbose\n" \
       "	-u,--username	Username\n" \
       "	-p,--password	Password\n" \
       "	-P,--port	Port number" \
	) \
	SKIP_GETOPT_LONG( \
       "	-v	Verbose\n" \
       "	-u	Username\n" \
       "	-p	Password\n" \
       "	-P	Port number" \
	)

#define fuser_trivial_usage \
       "[options] file OR port/proto"
#define fuser_full_usage \
       "Options:\n" \
       "	-m	Show all processes on the same mounted fs\n" \
       "	-k	Kill all processes that match\n" \
       "	-s	Don't print or kill anything\n" \
       "	-4	When using port/proto only search IPv4 space\n" \
       "	-6	When using port/proto only search IPv6 space\n" \
       "	-SIGNAL	When used with -k, this signal will be used to kill"

#define getenforce_trivial_usage
#define getenforce_full_usage

#define getopt_trivial_usage \
       "[OPTIONS]..."
#define getopt_full_usage \
       "Parse command options\n" \
	USE_GETOPT_LONG( \
       "	-a,--alternative		Allow long options starting with single -\n" \
       "	-l,--longoptions=longopts	Long options to be recognized\n" \
       "	-n,--name=progname		The name under which errors are reported\n" \
       "	-o,--options=optstring		Short options to be recognized\n" \
       "	-q,--quiet			Disable error reporting by getopt(3)\n" \
       "	-Q,--quiet-output		No normal output\n" \
       "	-s,--shell=shell		Set shell quoting conventions\n" \
       "	-T,--test			Test for getopt(1) version\n" \
       "	-u,--unquoted			Don't quote the output" \
	) \
	SKIP_GETOPT_LONG( \
       "	-a		Allow long options starting with single -\n" \
       "	-l longopts	Long options to be recognized\n" \
       "	-n progname	The name under which errors are reported\n" \
       "	-o optstring	Short options to be recognized\n" \
       "	-q		Disable error reporting by getopt(3)\n" \
       "	-Q		No normal output\n" \
       "	-s shell	Set shell quoting conventions\n" \
       "	-T		Test for getopt(1) version\n" \
       "	-u		Don't 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 getsebool_trivial_usage \
       "-a or getsebool boolean..."
#define getsebool_full_usage \
       "	-a	Show all SELinux booleans"

#define getty_trivial_usage \
       "[OPTIONS]... baud_rate,... line [termtype]"
#define getty_full_usage \
       "Open a tty, prompt for a login name, then invoke /bin/login" \
       "\n\nOptions:\n" \
       "	-h		Enable hardware (RTS/CTS) flow control\n" \
       "	-i		Do not display /etc/issue before running login\n" \
       "	-L		Local line, so do not do carrier detect\n" \
       "	-m		Get baud rate from modem's CONNECT status message\n" \
       "	-w		Wait for a CR or LF before sending /etc/issue\n" \
       "	-n		Do not prompt the user for a login name\n" \
       "	-f issue_file	Display issue_file instead of /etc/issue\n" \
       "	-l login_app	Invoke login_app instead of /bin/login\n" \
       "	-t timeout	Terminate after timeout if no username is read\n" \
       "	-I initstring	Sets the init string to send before anything else\n" \
       "	-H login_host	Log login_host into the utmp file as the hostname"

#define grep_trivial_usage \
       "[-HhrilLnqvso" \
	USE_DESKTOP("w") \
       "eF" \
	USE_FEATURE_GREP_EGREP_ALIAS("E") \
	USE_FEATURE_GREP_CONTEXT("ABC") \
       "] PATTERN [FILEs...]"
#define grep_full_usage \
       "Search for PATTERN in each FILE or standard input" \
       "\n\nOptions:" \
       "\n	-H	Prefix output lines with filename where match was found" \
       "\n	-h	Suppress the prefixing filename on output" \
       "\n	-r	Recurse subdirectories" \
       "\n	-i	Ignore case distinctions" \
       "\n	-l	List names of files that match" \
       "\n	-L	List names of files that do not match" \
       "\n	-n	Print line number with output lines" \
       "\n	-q	Quiet. Returns 0 if PATTERN was found, 1 otherwise" \
       "\n	-v	Select non-matching lines" \
       "\n	-s	Suppress file open/read error messages" \
       "\n	-c	Only print count of matching lines" \
       "\n	-o	Show only the part of a line that matches PATTERN" \
       "\n	-m MAX	Match up to MAX times per file" \
	USE_DESKTOP( \
       "\n	-w	Match whole words only") \
       "\n	-F	PATTERN is a set of newline-separated strings" \
	USE_FEATURE_GREP_EGREP_ALIAS( \
       "\n	-E	PATTERN is an extended regular expression") \
       "\n	-e PTRN	Pattern to match" \
       "\n	-f FILE	Read pattern from file" \
	USE_FEATURE_GREP_CONTEXT( \
       "\n	-A	Print NUM lines of trailing context" \
       "\n	-B	Print NUM lines of leading context" \
       "\n	-C	Print NUM lines of output context") \

#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\nOptions:\n" \
       "	-c	Write output to standard output\n" \
       "	-f	Force\n" \
       "	-t	Test 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\nOptions:\n" \
       "	-c	Write output to standard output instead of FILE.gz\n" \
       "	-d	Decompress\n" \
       "	-f	Force"
#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] [-n] [-f]"
#define halt_full_usage \
       "Halt the system" \
       "\n\nOptions:\n" \
       "	-d	Delay interval for halting\n" \
       "	-n	No call to sync()\n" \
       "	-f	Force halt (don't go through init)"

#define hdparm_trivial_usage \
       "[options] [device] .."
#define hdparm_full_usage \
	USE_FEATURE_HDPARM_GET_IDENTITY( \
       "If no device name is specified try to read from stdin.\n\n") \
       "Options:\n" \
       "	-a	Get/set fs readahead\n" \
       "	-A	Set drive read-lookahead flag (0/1)\n" \
       "	-b	Get/set bus state (0 == off, 1 == on, 2 == tristate)\n" \
       "	-B	Set Advanced Power Management setting (1-255)\n" \
       "	-c	Get/set IDE 32-bit IO setting\n" \
       "	-C	Check IDE power mode status\n" \
	USE_FEATURE_HDPARM_HDIO_GETSET_DMA( \
       "	-d	Get/set using_dma flag\n") \
       "	-D	Enable/disable drive defect-mgmt\n" \
       "	-f	Flush buffer cache for device on exit\n" \
       "	-g	Display drive geometry\n" \
       "	-h	Display terse usage information\n" \
	USE_FEATURE_HDPARM_GET_IDENTITY( \
       "	-i	Display drive identification\n") \
	USE_FEATURE_HDPARM_GET_IDENTITY( \
       "	-I	Detailed/current information directly from drive\n") \
       "	-k	Get/set keep_settings_over_reset flag (0/1)\n" \
       "	-K	Set drive keep_features_over_reset flag (0/1)\n" \
       "	-L	Set drive doorlock (0/1) (removable harddisks only)\n" \
       "	-m	Get/set multiple sector count\n" \
       "	-n	Get/set ignore-write-errors flag (0/1)\n" \
       "	-p	Set PIO mode on IDE interface chipset (0,1,2,3,4,...)\n" \
       "	-P	Set drive prefetch count\n" \
       "	-q	Change next setting quietly\n" \
       "	-Q	Get/set DMA tagged-queuing depth (if supported)\n" \
       "	-r	Get/set readonly flag (DANGEROUS to set)\n" \
	USE_FEATURE_HDPARM_HDIO_SCAN_HWIF( \
       "	-R	Register an IDE interface (DANGEROUS)\n") \
       "	-S	Set standby (spindown) timeout\n" \
       "	-t	Perform device read timings\n" \
       "	-T	Perform cache read timings\n" \
       "	-u	Get/set unmaskirq flag (0/1)\n" \
	USE_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF( \
       "	-U	Un-register an IDE interface (DANGEROUS)\n") \
       "	-v	Defaults; same as -mcudkrag for IDE drives\n" \
       "	-V	Display program version and exit immediately\n" \
	USE_FEATURE_HDPARM_HDIO_DRIVE_RESET( \
       "	-w	Perform device reset (DANGEROUS)\n") \
       "	-W	Set drive write-caching flag (0/1) (DANGEROUS)\n" \
	USE_FEATURE_HDPARM_HDIO_TRISTATE_HWIF( \
       "	-x	Tristate device for hotswap (0/1) (DANGEROUS)\n") \
       "	-X	Set IDE xfer mode (DANGEROUS)\n" \
       "	-y	Put IDE drive in standby mode\n" \
       "	-Y	Put IDE drive to sleep\n" \
       "	-Z	Disable Seagate auto-powersaving mode\n" \
       "	-z	Re-read partition table"

#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\nOptions:" \
       "\n	-n NUM	Print first NUM lines instead of first 10" \
	USE_FEATURE_FANCY_HEAD( \
       "\n	-c NUM	Output the first NUM bytes" \
       "\n	-q	Never output headers giving file names" \
       "\n	-v	Always 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 \
       "[-bcCdefnosvx" USE_FEATURE_HEXDUMP_REVERSE("R") "] FILE..."
#define hexdump_full_usage \
       "Display file(s) or standard input in a user specified format" \
       "\n\nOptions:" \
     "\n	-b		One-byte octal display" \
     "\n	-c		One-byte character display" \
     "\n	-C		Canonical hex+ASCII, 16 bytes per line" \
     "\n	-d		Two-byte decimal display" \
     "\n	-e FORMAT STRING" \
     "\n	-f FORMAT FILE" \
     "\n	-n LENGTH	Interpret only LENGTH bytes of input" \
     "\n	-o		Two-byte octal display" \
     "\n	-s OFFSET	Skip OFFSET bytes" \
     "\n	-v		Display all input data" \
     "\n	-x		Two-byte hexadecimal display" \
	USE_FEATURE_HEXDUMP_REVERSE( \
     "\n	-R		Reverse of 'hexdump -Cv'") \

#define hd_trivial_usage \
       "FILE..."
#define hd_full_usage \
       "hd is an alias for hexdump -C"

#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\nOptions:\n" \
       "	-s	Short\n" \
       "	-i	Addresses for the hostname\n" \
       "	-d	DNS domain name\n" \
       "	-f	Fully qualified domain name\n" \
       "	-F FILE	Use the contents of FILE to specify the hostname"
#define hostname_example_usage \
       "$ hostname\n" \
       "sage\n"

#define httpd_trivial_usage \
       "[-c conffile]" \
       " [-p [ip:]port]" \
       " [-i] [-f] [-v[v]]" \
	USE_FEATURE_HTTPD_SETUID(" [-u user[:grp]]") \
	USE_FEATURE_HTTPD_BASIC_AUTH(" [-r realm]") \
	USE_FEATURE_HTTPD_AUTH_MD5(" [-m pass]") \
       " [-h home]" \
       " [-d/-e string]"
#define httpd_full_usage \
       "Listen for incoming HTTP requests" \
       "\n\nOptions:" \
       "\n	-c FILE		Configuration file (default httpd.conf)" \
       "\n	-p [IP:]PORT	Bind to ip:port (default *:80)" \
       "\n	-i		Inetd mode" \
       "\n	-f		Do not daemonize" \
       "\n	-v[v]		Verbose" \
	USE_FEATURE_HTTPD_SETUID( \
       "\n	-u USER[:GRP]	Set uid/gid after binding to port") \
	USE_FEATURE_HTTPD_BASIC_AUTH( \
       "\n	-r REALM	Authentication Realm for Basic Authentication") \
	USE_FEATURE_HTTPD_AUTH_MD5( \
       "\n	-m PASS		Crypt PASS with md5 algorithm") \
       "\n	-h HOME		Home directory (default .)" \
       "\n	-e STRING	HTML encode STRING" \
       "\n	-d STRING	URL decode STRING" \

#define hwclock_trivial_usage \
	USE_GETOPT_LONG( \
       "[-r|--show] [-s|--hctosys] [-w|--systohc]" \
       " [-l|--localtime] [-u|--utc]" \
       " [-f FILE]" \
	) \
	SKIP_GETOPT_LONG( \
       "[-r] [-s] [-w] [-l] [-u] [-f FILE]" \
	)
#define hwclock_full_usage \
       "Query and set a hardware clock (RTC)" \
       "\n\nOptions:\n" \
       "	-r	Read hardware clock and print result\n" \
       "	-s	Set the system time from the hardware clock\n" \
       "	-w	Set the hardware clock to the system time\n" \
       "	-u	The hardware clock is kept in coordinated universal time\n" \
       "	-l	The hardware clock is kept in local time\n" \
       "	-f FILE	Use the specified clock (e.g. /dev/rtc2)"

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

#define ifconfig_trivial_usage \
	USE_FEATURE_IFCONFIG_STATUS("[-a]") " interface [address]"
#define ifconfig_full_usage \
       "Configure a network interface" \
       "\n\nOptions:\n" \
	USE_FEATURE_IPV6( \
       "	[add ADDRESS[/PREFIXLEN]]\n") \
	USE_FEATURE_IPV6( \
       "	[del ADDRESS[/PREFIXLEN]]\n") \
       "	[[-]broadcast [ADDRESS]] [[-]pointopoint [ADDRESS]]\n" \
       "	[netmask ADDRESS] [dstaddr ADDRESS]\n" \
	USE_FEATURE_IFCONFIG_SLIP( \
       "	[outfill NN] [keepalive NN]\n") \
       "	" USE_FEATURE_IFCONFIG_HW("[hw ether ADDRESS] ") "[metric NN] [mtu NN]\n" \
       "	[[-]trailers] [[-]arp] [[-]allmulti]\n" \
       "	[multicast] [[-]promisc] [txqueuelen NN] [[-]dynamic]\n" \
	USE_FEATURE_IFCONFIG_MEMSTART_IOADDR_IRQ( \
       "	[mem_start NN] [io_addr NN] [irq NN]\n") \
       "	[up|down] ..."

#define ifup_trivial_usage \
       "[-ahinv] ifaces..."
#define ifup_full_usage \
       "Options:\n" \
       "	-a	De/configure all interfaces automatically\n" \
       "	-i FILE	Use FILE for interface definitions\n" \
       "	-n	Print out what would happen, but don't do it\n" \
       "		(note that this option doesn't disable mappings)\n" \
       "	-v	Print out what would happen before doing it\n" \
       "	-m	Don't run any mappings\n" \
       "	-f	Force de/configuration"

#define ifdown_trivial_usage \
       "[-ahinv] ifaces..."
#define ifdown_full_usage \
       "Options:\n" \
       "	-a	De/configure all interfaces automatically\n" \
       "	-i FILE	Use FILE for interface definitions\n" \
       "	-n	Print out what would happen, but don't do it\n" \
       "		(note that this option doesn't disable mappings)\n" \
       "	-v	Print out what would happen before doing it\n" \
       "	-m	Don't run any mappings\n" \
       "	-f	Force de/configuration"

#define inetd_trivial_usage \
       "[-f] [-q len] [conf]"
#define inetd_full_usage \
       "Listen for network connections and launch programs" \
       "\n\nOptions:\n" \
       "	-f	Run in foreground\n" \
       "	-q N	Set the size of the socket listen queue to N\n" \
       "		(default: 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"

#define insmod_trivial_usage \
	USE_FEATURE_2_4_MODULES("[OPTION]... ") "MODULE [symbol=value]..."
#define insmod_full_usage \
       "Load the specified kernel modules into the kernel" \
	USE_FEATURE_2_4_MODULES( \
       "\n\nOptions:\n" \
       "	-f	Force module to load into the wrong kernel version\n" \
       "	-k	Make module autoclean-able\n" \
       "	-v	Verbose\n" \
       "	-q	Quiet\n" \
       "	-L	Lock to prevent simultaneous loads of a module\n" \
	USE_FEATURE_INSMOD_LOAD_MAP( \
       "	-m	Output load map to stdout\n" \
	) \
       "	-o NAME	Set internal module name to NAME\n" \
       "	-x	Do not export externs" \
	)

#define install_trivial_usage \
       "[-cgmops] [sources] dest|directory"
#define install_full_usage \
       "Copy files and set attributes" \
       "\n\nOptions:\n" \
       "	-c	Copy the file, default\n" \
       "	-d	Create directories\n" \
       "	-g	Set group ownership\n" \
       "	-m	Set permissions\n" \
       "	-o	Set ownership\n" \
       "	-p	Preserve date\n" \
       "	-s	Strip symbol tables" \
	USE_SELINUX( \
       "\n	-Z	Set security context of copy" \
	)
/* would need to make the " | " optional depending on more than one selected */
#define ip_trivial_usage \
       "[OPTIONS] {" \
	USE_FEATURE_IP_ADDRESS("address | ") \
	USE_FEATURE_IP_ROUTE("route | ") \
	USE_FEATURE_IP_LINK("link | ") \
	USE_FEATURE_IP_TUNNEL("tunnel | ") \
	USE_FEATURE_IP_RULE("rule") \
       "} {COMMAND}"
#define ip_full_usage \
       "ip [OPTIONS] OBJECT {COMMAND}\n" \
       "where OBJECT := {" \
	USE_FEATURE_IP_ADDRESS("address | ") \
	USE_FEATURE_IP_ROUTE("route | ") \
	USE_FEATURE_IP_LINK("link | ") \
	USE_FEATURE_IP_TUNNEL("tunnel | ") \
	USE_FEATURE_IP_RULE("rule") \
       "}\n" \
       "OPTIONS := { -f[amily] { inet | inet6 | link } | -o[neline] }"

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

#define ipcalc_trivial_usage \
       "[OPTION]... ADDRESS[[/]NETMASK] [NETMASK]"
#define ipcalc_full_usage \
       "Calculate IP network settings from a IP address" \
       "\n\nOptions:" \
	USE_FEATURE_IPCALC_LONG_OPTIONS( \
       "\n	-b,--broadcast	Display calculated broadcast address" \
       "\n	-n,--network	Display calculated network address" \
       "\n	-m,--netmask	Display default netmask for IP" \
	USE_FEATURE_IPCALC_FANCY( \
       "\n	-p,--prefix	Display the prefix for IP/NETMASK" \
       "\n	-h,--hostname	Display first resolved host name" \
       "\n	-s,--silent	Don't ever display error messages" \
	) \
	) \
	SKIP_FEATURE_IPCALC_LONG_OPTIONS( \
       "\n	-b	Display calculated broadcast address" \
       "\n	-n	Display calculated network address" \
       "\n	-m	Display default netmask for IP" \
	USE_FEATURE_IPCALC_FANCY( \
       "\n	-p	Display the prefix for IP/NETMASK" \
       "\n	-h	Display first resolved host name" \
       "\n	-s	Don'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 segment by a\n" \
       "segment by a shmkey value. The lower-case options mqs are used\n" \
       "to remove a segment by shmid value.\n" \
       "\n\nOptions:\n" \
       "	-[mM]	Remove the memory segment after the last detach\n" \
       "	-[qQ]	Remove the message queue\n" \
       "	-[sS]	Remove the semaphore"

#define ipcs_trivial_usage \
       "[[-smq] -i shmid] | [[-asmq] [-tcplu]]"
#define ipcs_full_usage \
       "	-i	Show a specific resource\n" \
       "Resource specification:\n" \
       "	-m	Shared memory segments\n" \
       "	-q	Message queues\n" \
       "	-s	Semaphore arrays\n" \
       "	-a	All (default)\n" \
       "Output format:\n" \
       "	-t	Time\n" \
       "	-c	Creator\n" \
       "	-p	Pid\n" \
       "	-l	Limits\n" \
       "	-u	Summary"

#define iplink_trivial_usage \
       "{ set DEVICE { up | down | arp { on | off } | show [DEVICE] }"
#define iplink_full_usage \
       "iplink set DEVICE { up | down | arp | multicast { on | off } |\n" \
       "			dynamic { on | off } |\n" \
       "			mtu MTU }\n" \
       "iplink show [DEVICE]"

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

#define iprule_trivial_usage \
       "{[list | add | del] RULE}"
#define iprule_full_usage \
       "iprule [list | add | del] SELECTOR ACTION\n" \
       "	SELECTOR := [from PREFIX] [to PREFIX] [tos TOS] [fwmark FWMARK]\n" \
       "			[dev STRING] [pref NUMBER]\n" \
       "	ACTION := [table TABLE_ID] [nat ADDRESS]\n" \
       "			[prohibit | reject | unreachable]\n" \
       "			[realms [SRCREALM/]DSTREALM]\n" \
       "	TABLE_ID := [local | main | default | NUMBER]"

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

#define kbd_mode_trivial_usage \
       "[-a|k|s|u]"
#define kbd_mode_full_usage \
       "Report or set the keyboard mode" \
       "\n\nOptions set mode:\n" \
       "	-a	Default (ASCII)\n" \
       "	-k	Medium-raw (keyboard)\n" \
       "	-s	Raw (scancode)\n" \
       "	-u	Unicode (utf-8)"

#define kill_trivial_usage \
       "[-l] [-signal] process-id [process-id...]"
#define kill_full_usage \
       "Send a signal (default is TERM) to the specified process(es)" \
       "\n\nOptions:\n" \
       "	-l	List 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 \
       "[-l] [-q] [-signal] process-name [process-name...]"
#define killall_full_usage \
       "Send a signal (default is TERM) to the specified process(es)" \
       "\n\nOptions:\n" \
       "	-l	List all signal names and numbers\n" \
       "	-q	Do not complain if no processes were killed"
#define killall_example_usage \
       "$ killall apache\n"

#define killall5_trivial_usage \
       "[-l] [-signal]"
#define killall5_full_usage \
       "Send a signal (default is TERM) to all processes outside current session" \
       "\n\nOptions:\n" \
       "	-l	List all signal names and numbers\n" \

#define klogd_trivial_usage \
       "[-c n] [-n]"
#define klogd_full_usage \
       "Kernel logger" \
       "\n\nOptions:\n" \
       "	-c n	Sets the default log level of console messages to n\n" \
       "	-n	Run in foreground"

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

#define less_trivial_usage \
       "[-EMNmh~?] FILE1 FILE2..."
#define less_full_usage \
       "View a file or list of files. The position within files can be\n" \
       "changed, and files can be manipulated in various ways." \
       "\n\nOptions:\n" \
       "	-E	Quit once the end of a file is reached\n" \
       "	-M,-m	Display a status line containing the current line numbers\n" \
       "		and the percentage through the file\n" \
       "	-N	Prefix line numbers to each line\n" \
       "	-~	Suppress ~s displayed when input past the end of the file is\n" \
       "		reached"

#define setarch_trivial_usage \
       "personality program [args...]"
#define setarch_full_usage \
       "Personality may be:\n" \
       "	linux32		Set 32bit uname emulation\n" \
       "	linux64		Set 64bit uname emulation"

#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" \
       "You may use '--' to indicate that all following arguments are non-options." \
       "\n\nOptions:\n" \
       "	-s	Make symlinks instead of hardlinks\n" \
       "	-f	Remove existing destination files\n" \
       "	-n	Don't dereference symlinks - treat like normal file\n" \
       "	-b	Make a backup of the target (if exists) before link operation\n" \
       "	-S suf	Use 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 load_policy_trivial_usage

#define load_policy_full_usage

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

#define loadkmap_trivial_usage \
       "< keymap"
#define loadkmap_full_usage \
       "Load 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\nOptions:\n" \
       "	-s	Log to stderr as well as the system log\n" \
       "	-t TAG	Log using the specified tag (defaults to user name)\n" \
       "	-p PRIO	Enter the message with the specified priority.\n" \
       "		This 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\nOptions:\n" \
       "	-f	Do not authenticate (user already authenticated)\n" \
       "	-h	Name of the remote host for this login\n" \
       "	-p	Preserve 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 \
       "Show the messages from syslogd (using circular buffer)" \
       "\n\nOptions:\n" \
       "	-f	Output data as the log grows"

#define losetup_trivial_usage \
       "[-o OFS] LOOPDEV FILE - associate loop devices\n" \
       "	losetup -d LOOPDEV - disassociate\n" \
       "	losetup [-f] - show"
#define losetup_full_usage \
       "Options:\n" \
       "	-o OFS	Start OFS bytes into FILE\n" \
       "	-f	Show first free loop device"
#define losetup_notes_usage \
       "No arguments will display all current associations.\n" \
       "One argument (losetup /dev/loop1) will display the current association\n" \
       "(if any), or disassociate it (with -d). The display shows the offset\n" \
       "and filename of the file the loop device is currently bound to.\n\n" \
       "Two arguments (losetup /dev/loop1 file.img) create a new association,\n" \
       "with an optional offset (-o 12345). Encryption is not yet supported.\n" \
       "losetup -f will show the first loop free loop device\n\n"

#define ls_trivial_usage \
       "[-1Aa" USE_FEATURE_LS_TIMESTAMPS("c") "Cd" \
	USE_FEATURE_LS_TIMESTAMPS("e") USE_FEATURE_LS_FILETYPES("F") "iln" \
	USE_FEATURE_LS_FILETYPES("p") USE_FEATURE_LS_FOLLOWLINKS("L") \
	USE_FEATURE_LS_RECURSIVE("R") USE_FEATURE_LS_SORTFILES("rS") "s" \
	USE_FEATURE_AUTOWIDTH("T") USE_FEATURE_LS_TIMESTAMPS("tu") \
	USE_FEATURE_LS_SORTFILES("v") USE_FEATURE_AUTOWIDTH("w") "x" \
	USE_FEATURE_LS_SORTFILES("X") USE_FEATURE_HUMAN_READABLE("h") "k" \
	USE_SELINUX("K") "] [filenames...]"
#define ls_full_usage \
       "List directory contents" \
       "\n\nOptions:" \
       "\n	-1	List files in a single column" \
       "\n	-A	Do not list implied . and .." \
       "\n	-a	Do not hide entries starting with ." \
       "\n	-C	List entries by columns" \
	USE_FEATURE_LS_TIMESTAMPS( \
       "\n	-c	With -l: show ctime") \
	USE_FEATURE_LS_COLOR( \
       "\n	--color[={always,never,auto}]	Control coloring") \
       "\n	-d	List directory entries instead of contents" \
	USE_FEATURE_LS_TIMESTAMPS( \
       "\n	-e	List both full date and full time") \
	USE_FEATURE_LS_FILETYPES( \
       "\n	-F	Append indicator (one of */=@|) to entries") \
       "\n	-i	List the i-node for each file" \
       "\n	-l	Use a long listing format" \
       "\n	-n	List numeric UIDs and GIDs instead of names" \
	USE_FEATURE_LS_FILETYPES( \
       "\n	-p	Append indicator (one of /=@|) to entries") \
	USE_FEATURE_LS_FOLLOWLINKS( \
       "\n	-L	List entries pointed to by symlinks") \
	USE_FEATURE_LS_RECURSIVE( \
       "\n	-R	List subdirectories recursively") \
	USE_FEATURE_LS_SORTFILES( \
       "\n	-r	Sort the listing in reverse order") \
	USE_FEATURE_LS_SORTFILES( \
       "\n	-S	Sort the listing by file size") \
       "\n	-s	List the size of each file, in blocks" \
	USE_FEATURE_AUTOWIDTH( \
       "\n	-T NUM	Assume Tabstop every NUM columns") \
	USE_FEATURE_LS_TIMESTAMPS( \
       "\n	-t	With -l: show modification time") \
	USE_FEATURE_LS_TIMESTAMPS( \
       "\n	-u	With -l: show access time") \
	USE_FEATURE_LS_SORTFILES( \
       "\n	-v	Sort the listing by version") \
	USE_FEATURE_AUTOWIDTH( \
       "\n	-w NUM	Assume the terminal is NUM columns wide") \
       "\n	-x	List entries by lines instead of by columns" \
	USE_FEATURE_LS_SORTFILES( \
       "\n	-X	Sort the listing by extension") \
	USE_FEATURE_HUMAN_READABLE( \
       "\n	-h	Print sizes in human readable format (e.g., 1K 243M 2G)") \
	USE_SELINUX( \
       "\n	-k	Print security context") \
	USE_SELINUX( \
       "\n	-K	Print security context in long format") \
	USE_SELINUX( \
       "\n	-Z	Print security context and permission")

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

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

#if ENABLE_FEATURE_MAKEDEVS_LEAF
#define makedevs_trivial_usage \
       "NAME TYPE MAJOR MINOR FIRST LAST [s]"
#define makedevs_full_usage \
       "Create a range of block or character special files\n\n" \
       "TYPEs include:\n" \
       "	b:	Make a block (buffered) device\n" \
       "	c or u:	Make a character (un-buffered) device\n" \
       "	p:	Make 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" \
       "	makedevs /dev/ttyS c 4 66 2 63   ->  ttyS2-ttyS63\n" \
       "	makedevs /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

#if ENABLE_FEATURE_MAKEDEVS_TABLE
#define makedevs_trivial_usage \
       "[-d device_table] rootdir"
#define makedevs_full_usage \
       "Create 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

#define matchpathcon_trivial_usage \
       "[-n] [-N] [-f file_contexts_file] [-p prefix] [-V]"
#define matchpathcon_full_usage \
       "	-n	Do not display path" \
       "\n	-N	Do not use translations" \
       "\n	-f	Use alternate file_context file" \
       "\n	-p	Use prefix to speed translations" \
       "\n	-V	Verify file context on disk matches defaults"

#define md5sum_trivial_usage \
       "[OPTION] [FILEs...]" \
	USE_FEATURE_MD5_SHA1_SUM_CHECK("\n   or: md5sum [OPTION] -c [FILE]")
#define md5sum_full_usage \
       "Print" USE_FEATURE_MD5_SHA1_SUM_CHECK(" or check") " MD5 checksums" \
       "\n\nOptions:\n" \
       "With no FILE, or when FILE is -, read standard input." \
	USE_FEATURE_MD5_SHA1_SUM_CHECK("\n\n" \
       "	-c	Check MD5 sums against given list\n" \
       "\nThe following two options are useful only when verifying checksums:\n" \
       "	-s	Don't output anything, status code shows success\n" \
       "	-w	Warn about improperly formatted 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 mdev_trivial_usage \
       "[-s]"
#define mdev_full_usage \
       "	-s	Scan /sys and populate /dev during system boot\n\n" \
       "Called with no options (via hotplug) it uses environment variables\n" \
       "to determine which device to add/remove."
#define mdev_notes_usage "" \
	USE_FEATURE_MDEV_CONFIG( \
       "The mdev config file contains lines that look like:\n" \
       "  hd[a-z][0-9]* 0:3 660\n\n" \
       "That's device name (with regex match), uid:gid, and permissions.\n\n" \
	USE_FEATURE_MDEV_EXEC( \
       "Optionally, that can be followed (on the same line) by a special character\n" \
       "and a command line to run after creating/before deleting the corresponding\n" \
       "device(s). The environment variable $MDEV indicates the active device node\n" \
       "(which is useful if it's a regex match). For example:\n\n" \
       "  hdc root:cdrom 660  *ln -s $MDEV cdrom\n\n" \
       "The special characters are @ (run after creating), $ (run before deleting),\n" \
       "and * (run both after creating and before deleting). The commands run in\n" \
       "the /dev directory, and use system() which calls /bin/sh.\n\n" \
	) \
       "Config file parsing stops on the first matching line. If no config\n" \
       "entry is matched, devices are created with default 0:0 660. (Make\n" \
       "the last line match .* to override this.)\n\n" \
	)

#define mesg_trivial_usage \
       "[y|n]"
#define mesg_full_usage \
       "Control write access to your terminal\n" \
       "	y	Allow write access to your terminal\n" \
       "	n	Disallow write access to your terminal"

#define microcom_trivial_usage \
	"[-s speed] tty-name"
#define microcom_full_usage \
	""

#define mkdir_trivial_usage \
       "[OPTION] DIRECTORY..."
#define mkdir_full_usage \
       "Create the DIRECTORY(ies) if they do not already exist" \
       "\n\nOptions:\n" \
       "	-m	Set permission mode (as in chmod), not rwxrwxrwx - umask\n" \
       "	-p	No error if existing, make parent directories as needed" \
	USE_SELINUX( \
       "\n	-Z	Set security context" \
	)

#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 \
       "	-b size		Block size in bytes\n" \
       "	-c		Check for bad blocks before creating\n" \
       "	-E opts		Set extended options\n" \
       "	-f size		Fragment size in bytes\n" \
       "	-F		Force (ignore sanity checks)\n" \
       "	-g num		Number of blocks in a block group\n" \
       "	-i ratio	The bytes/inode ratio\n" \
       "	-j		Create a journal (ext3)\n" \
       "	-J opts		Set journal options (size/device)\n" \
       "	-l file		Read bad blocks list from file\n" \
       "	-L lbl		Set the volume label\n" \
       "	-m percent	Percent of fs blocks to reserve for admin\n" \
       "	-M dir		Set last mounted directory\n" \
       "	-n		Do not actually create anything\n" \
       "	-N num		Number of inodes to create\n" \
       "	-o os		Set the 'creator os' field\n" \
       "	-O features	Dir_index/filetype/has_journal/journal_dev/sparse_super\n" \
       "	-q		Quiet\n" \
       "	-r rev		Set filesystem revision\n" \
       "	-S		Write superblock and group descriptors only\n" \
       "	-T fs-type	Set usage type (news/largefile/largefile4)\n" \
       "	-v		Verbose"

#define mkfifo_trivial_usage \
       "[OPTIONS] name"
#define mkfifo_full_usage \
       "Create a named pipe (identical to 'mknod name p')" \
       "\n\nOptions:\n" \
       "	-m	Create the pipe using the specified mode (default a=rw)" \
	USE_SELINUX( \
       "\n	-Z	Set security context" \
	)

#define mkfs_minix_trivial_usage \
       "[-c | -l filename] [-nXX] [-iXX] /dev/name [blocks]"
#define mkfs_minix_full_usage \
       "Make a MINIX filesystem" \
       "\n\nOptions:\n" \
       "	-c		Check device for bad blocks\n" \
       "	-n [14|30]	Maximum length of filenames\n" \
       "	-i INODES	Number of inodes for the filesystem\n" \
       "	-l FILENAME	Read bad blocks list from FILENAME\n" \
       "	-v		Make 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\nOptions:\n" \
       "	-m	Create the special file using the specified mode (default a=rw)" \
       "\n\nTYPEs include:\n" \
       "	b:	Make a block (buffered) device\n" \
       "	c or u:	Make a character (un-buffered) device\n" \
       "	p:	Make a named pipe. MAJOR and MINOR are ignored for named pipes" \
	USE_SELINUX( \
       "\n	-Z	Set security context" \
	)

#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 swap partition" \
       "\n\nOptions:\n" \
       "	-c		Check for read-ability\n" \
       "	-v0		Make version 0 swap [max 128 Megs]\n" \
       "	-v1		Make version 1 swap [big!] (default for kernels > 2.1.117)\n" \
       "	block-count	Number of block to use (default is entire partition)"

#define mktemp_trivial_usage \
       "[-dq] TEMPLATE"
#define mktemp_full_usage \
       "Create a temporary file with its name based on TEMPLATE.\n" \
       "TEMPLATE is any name with six 'Xs' (i.e., /tmp/temp.XXXXXX)." \
       "\n\nOptions:\n" \
       "	-d	Make a directory instead of a file\n" \
       "	-q	Fail 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 [symbol=value...]"
#define modprobe_full_usage \
       "Options:\n" \
       "	-k	Make module autoclean-able\n" \
       "	-n	Dry run\n" \
       "	-q	Quiet\n" \
       "	-r	Remove module (stacks) or do autoclean\n" \
       "	-s	Report via syslog instead of stderr\n" \
       "	-v	Verbose"
#define modprobe_notes_usage \
"modprobe can (un)load a stack of modules, passing each module options (when\n" \
"loading). modprobe uses a configuration file to determine what option(s) to\n" \
"pass each module it loads.\n" \
"\n" \
"The configuration file is searched (in order) amongst:\n" \
"\n" \
"    /etc/modprobe.conf (2.6 only)\n" \
"    /etc/modules.conf\n" \
"    /etc/conf.modules (deprecated)\n" \
"\n" \
"They all have the same syntax (see below). If none is present, it is\n" \
"_not_ an error; each loaded module is then expected to load without\n" \
"options. Once a file is found, the others are tested for.\n" \
"\n" \
"/etc/modules.conf entry format:\n" \
"\n" \
"  alias <alias_name> <mod_name>\n" \
"    Makes it possible to modprobe alias_name, when there is no such module.\n" \
"    It makes sense if your mod_name is long, or you want a more representative\n" \
"    name for that module (eg. 'scsi' in place of 'aha7xxx').\n" \
"    This makes it also possible to use a different set of options (below) for\n" \
"    the module and the alias.\n" \
"    A module can be aliased more than once.\n" \
"\n" \
"  options <mod_name|alias_name> <symbol=value...>\n" \
"    When loading module mod_name (or the module aliased by alias_name), pass\n" \
"    the \"symbol=value\" pairs as option to that module.\n" \
"\n" \
"Sample /etc/modules.conf file:\n" \
"\n" \
"  options tulip irq=3\n" \
"  alias tulip tulip2\n" \
"  options tulip2 irq=4 io=0x308\n" \
"\n" \
"Other functionality offered by 'classic' modprobe is not available in\n" \
"this implementation.\n" \
"\n" \
"If module options are present both in the config file, and on the command line,\n" \
"then the options from the command line will be passed to the module _after_\n" \
"the options from the config file. That way, you can have defaults in the config\n" \
"file, and override them for a specific usage from the command line.\n"
#define modprobe_example_usage \
       "(with the above /etc/modules.conf):\n\n" \
       "$ modprobe tulip\n" \
       "   will load the module 'tulip' with default option 'irq=3'\n\n" \
       "$ modprobe tulip irq=5\n" \
       "   will load the module 'tulip' with option 'irq=5', thus overriding the default\n\n" \
       "$ modprobe tulip2\n" \
       "   will load the module 'tulip' with default options 'irq=4 io=0x308',\n" \
       "   which are the default for alias 'tulip2'\n\n" \
       "$ modprobe tulip2 irq=8\n" \
       "   will load the module 'tulip' with default options 'irq=4 io=0x308 irq=8',\n" \
       "   which are the default for alias 'tulip2' overridden by the option 'irq=8'\n\n" \
       "   from the command line\n\n" \
       "$ modprobe tulip2 irq=2 io=0x210\n" \
       "   will load the module 'tulip' with default options 'irq=4 io=0x308 irq=4 io=0x210',\n" \
       "   which are the default for alias 'tulip2' overridden by the options 'irq=2 io=0x210'\n\n" \
       "   from the command line\n"

#define more_trivial_usage \
       "[FILE...]"
#define more_full_usage \
       "View FILE or standard input one screenful at a time"
#define more_example_usage \
       "$ dmesg | more\n"

#define mount_trivial_usage \
       "[flags] DEVICE NODE [-o options,more-options]"
#define mount_full_usage \
       "Mount a filesystem. Filesystem autodetection requires /proc be mounted." \
       "\n\nOptions:\n" \
       "	-a		Mount all filesystems in fstab\n" \
	USE_FEATURE_MTAB_SUPPORT( \
       "	-f		Update /etc/mtab, but don't mount\n" \
       "	-n		Don't update /etc/mtab\n" \
	) \
       "	-r		Read-only mount\n" \
       "	-t fs-type	Filesystem type\n" \
       "	-w		Read-write mount (default)\n" \
       "\n" \
       "-o option:\n" \
	USE_FEATURE_MOUNT_LOOP( \
       "	loop		Ignored (loop devices are autodetected)\n" \
	) \
	USE_FEATURE_MOUNT_FLAGS( \
       "	[a]sync		Writes are asynchronous / synchronous\n" \
       "	[no]atime	Disable / enable updates to inode access times\n" \
       "	[no]diratime	Disable / enable atime updates to directories\n" \
       "	[no]dev		Allow use of special device files / disallow them\n" \
       "	[no]exec	Allow use of executable files / disallow them\n" \
       "	[no]suid	Allow set-user-id-root programs / disallow them\n" \
       "	[r]shared	Convert [recursively] to a shared subtree\n" \
       "	[r]slave	Convert [recursively] to a slave subtree\n" \
       "	[r]private	Convert [recursively] to a private subtree\n" \
       "	[un]bindable	Make mount point [un]able to be bind mounted\n" \
       "	bind		Bind a directory to an additional location\n" \
       "	move		Relocate an existing mount point\n" \
	) \
       "	remount		Remount a mounted filesystem, changing its flags\n" \
       "	ro/rw		Mount for read-only / read-write\n" \
       "\n" \
       "There 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" \
       "$ mount cd_image.iso mydir\n"
#define mount_notes_usage \
       "Returns 0 for success, number of failed mounts for -a, or errno for one mount."

#define mountpoint_trivial_usage \
       "[-q] <[-d] DIR | -x DEVICE>"
#define mountpoint_full_usage \
       "mountpoint checks if the directory is a mountpoint" \
       "\n\nOptions:\n" \
       "	-q	Quiet\n" \
       "	-d	Print major/minor device number of the filesystem\n" \
       "	-x	Print 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\nOptions:\n" \
       "	-f	Don't prompt before overwriting\n" \
       "	-i	Interactive, 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 \
       "Rename network interface while it in the down state" \
       "\n\nOptions:\n" \
       "	-c FILE		Use configuration file (default is /etc/mactab)\n" \
       "	-s		Use syslog (LOCAL0 facility)\n" \
       "	IFNAME MACADDR	new_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" \

#if !ENABLE_DESKTOP

#if ENABLE_NC_SERVER || ENABLE_NC_EXTRA
#define NC_OPTIONS_STR "\n\nOptions:"
#else
#define NC_OPTIONS_STR
#endif

#define nc_trivial_usage \
	USE_NC_EXTRA("[-iN] [-wN] ")USE_NC_SERVER("[-l] [-p PORT] ") \
       "["USE_NC_EXTRA("-f FILENAME|")"IPADDR PORTNUM]"USE_NC_EXTRA(" [-e COMMAND]")
#define nc_full_usage \
       "Open a pipe to IP:port" USE_NC_EXTRA(" or file") \
	NC_OPTIONS_STR \
	USE_NC_EXTRA( \
       "\n	-e	Exec rest of command line after connect" \
       "\n	-i SECS	Delay interval for lines sent" \
       "\n	-w SECS	Timeout for connect" \
       "\n	-f FILE	Use file (ala /dev/ttyS0) instead of network" \
	) \
	USE_NC_SERVER( \
       "\n	-l	Listen mode, for inbound connects" \
	USE_NC_EXTRA( \
       "\n		(use -l twice with -e for persistent server)") \
       "\n	-p PORT	Local port number" \
	)

#define nc_notes_usage "" \
	USE_NC_EXTRA( \
       "To use netcat as a terminal emulator on a serial port:\n\n" \
       "$ stty 115200 -F /dev/ttyS0\n" \
       "$ stty raw -echo -ctlecho && nc -f /dev/ttyS0\n" \
	)

#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"

#else /* DESKTOP nc - much more compatible with nc 1.10 */

#define nc_trivial_usage \
       "[-options] hostname port  - connect" \
	USE_NC_SERVER("\nnc [-options] -l -p port [hostname] [port]  - listen")
#define nc_full_usage \
	USE_NC_SERVER( \
       "-l		Listen mode, for inbound connects\n" \
	) \
       "-n		Don't do DNS resolution" \
     "\n-s addr		Local address" \
     "\n-p port		Local port" \
     "\n-u		UDP mode" \
     "\n-v		Verbose (cumulative: -vv)" \
     "\n-w secs		Timeout for connects and final net reads" \
	USE_NC_EXTRA( \
     "\n-i sec		Delay interval for lines sent" /* ", ports scanned" */ \
     "\n-o file		Hex dump of traffic" \
     "\n-z		Zero-I/O mode (scanning)" \
	) \
     "\n-e prog [args]	Program to exec after connect (must be last)" \
/*   "\n-r		Randomize local and remote ports" */
/*   "\n-g gateway	Source-routing hop point[s], up to 8" */
/*   "\n-G num		Source-routing pointer: 4, 8, 12, ..." */
/*   "\nport numbers can be individual or ranges: lo-hi [inclusive]" */

#endif

#define netstat_trivial_usage \
       "[-laentuwxr"USE_FEATURE_NETSTAT_WIDE("W")"]"
#define netstat_full_usage \
       "Display networking information" \
     "\n\nOptions:" \
     "\n	-l	Display listening server sockets" \
     "\n	-a	Display all sockets (default: connected)" \
     "\n	-e	Display other/more information" \
     "\n	-n	Don't resolve names" \
     "\n	-t	Tcp sockets" \
     "\n	-u	Udp sockets" \
     "\n	-w	Raw sockets" \
     "\n	-x	Unix sockets" \
     "\n	-r	Display routing table" \
	USE_FEATURE_NETSTAT_WIDE( \
     "\n	-W	Display with no column truncation" \
	)

#define nice_trivial_usage \
       "[-n ADJUST] [COMMAND [ARG]...]"
#define nice_full_usage \
       "Run a program with modified scheduling priority" \
       "\n\nOptions:\n" \
       "	-n ADJUST	Adjust the scheduling priority by ADJUST"

#define nmeter_trivial_usage \
       "format_string"
#define nmeter_full_usage \
       "Monitor system in real time\n\n" \
       "Format specifiers:\n" \
       "%Nc or %[cN]	Monitor CPU. N - bar size, default 10\n" \
       "		(displays: S:system U:user N:niced D:iowait I:irq i:softirq)\n" \
       "%[niface]	Monitor network interface 'iface'\n" \
       "%m		Monitor allocated memory\n" \
       "%[mf]		Monitor free memory\n" \
       "%[mt]		Monitor total memory\n" \
       "%s		Monitor allocated swap\n" \
       "%f		Monitor number of used file descriptors\n" \
       "%Ni		Monitor total/specific IRQ rate\n" \
       "%x		Monitor context switch rate\n" \
       "%p		Monitor forks\n" \
       "%[pn]		Monitor # of processes\n" \
       "%b		Monitor block io\n" \
       "%Nt		Show time (with N decimal points)\n" \
       "%Nd		Milliseconds between updates (default=1000)\n" \
       "%r		Print <cr> instead of <lf> at EOL"
#define nmeter_example_usage \
       "nmeter '%250d%t %20c int %i bio %b mem %m forks%p'"

#define nohup_trivial_usage \
       "COMMAND [ARGS]"
#define nohup_full_usage \
       "Run a command immune to hangups, with output to a non-tty"
#define nohup_example_usage \
       "$ nohup make &"

#define nslookup_trivial_usage \
       "[HOST] [SERVER]"
#define nslookup_full_usage \
       "Query 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"

#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\nOptions:\n" \
       "	-a	Define which algorithm shall be used for the password\n" \
       "		(choices: des, md5)\n" /* ", sha1)" */ \
       "	-d	Delete the password for the specified user account\n" \
       "	-l	Locks (disables) the specified user account\n" \
       "	-u	Unlocks (re-enables) the specified user account"

#define chpasswd_trivial_usage \
	USE_GETOPT_LONG("[--md5|--encrypt]") SKIP_GETOPT_LONG("[-m|-e]")
#define chpasswd_full_usage \
       "Read user:password information from stdin\n" \
       "and update /etc/passwd accordingly." \
       "\n\nOptions:" \
	USE_GETOPT_LONG( \
       "\n	-e,--encrypt	Supplied passwords are in encrypted form" \
       "\n	-m,--md5	Use MD5 encryption instead of DES" \
	) \
	SKIP_GETOPT_LONG( \
       "\n	-e	Supplied passwords are in encrypted form" \
       "\n	-m	Use MD5 encryption instead of DES" \
	)

#define patch_trivial_usage \
       "[-p num] [-i diff]"
#define patch_full_usage \
       "	-p NUM	Strip NUM leading components from file names\n" \
       "	-i DIFF	Read DIFF instead of stdin"
#define patch_example_usage \
       "$ patch -p1 < example.diff\n" \
       "$ patch -p0 -i example.diff"

#define pgrep_trivial_usage \
       "[-flnovx] pattern"
#define pgrep_full_usage \
       "Display process(es) selected by regex pattern" \
       "\n\nOptions:\n" \
       "	-l	Show command name too\n" \
       "	-f	Match against entire command line\n" \
       "	-n	Signal the newest process only\n" \
       "	-o	Signal the oldest process only\n" \
       "	-v	Negate the matching\n" \
       "	-x	Match whole name (not substring)"

#if (ENABLE_FEATURE_PIDOF_SINGLE || ENABLE_FEATURE_PIDOF_OMIT)
#define USAGE_PIDOF "Options:"
#else
#define USAGE_PIDOF "\nThis version of pidof accepts no options."
#endif

#define pidof_trivial_usage \
       "process-name [OPTION] [process-name...]"

#define pidof_full_usage \
       "List the PIDs of all processes with names that match the\n" \
       "names on the command line\n" \
	USAGE_PIDOF \
	USE_FEATURE_PIDOF_SINGLE( \
       "\n	-s	Display only a single PID") \
	USE_FEATURE_PIDOF_OMIT( \
       "\n	-o PID	Omit given pid") \
	USE_FEATURE_PIDOF_OMIT( \
       "\n		Use %PPID to omit the parent pid of pidof itself")
#define pidof_example_usage \
       "$ pidof init\n" \
       "1\n" \
	USE_FEATURE_PIDOF_OMIT( \
       "$ pidof /bin/sh\n20351 5973 5950\n") \
	USE_FEATURE_PIDOF_OMIT( \
       "$ pidof /bin/sh -o %PPID\n20351 5950")

#if !ENABLE_FEATURE_FANCY_PING
#define ping_trivial_usage \
       "host"
#define ping_full_usage \
       "Send ICMP ECHO_REQUEST packets to network hosts"
#define ping6_trivial_usage \
       "host"
#define ping6_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\nOptions:\n" \
       "	-4, -6		Force IPv4 or IPv6 hostname resolution\n" \
       "	-c CNT		Send only CNT pings\n" \
       "	-s SIZE		Send SIZE data bytes in packets (default=56)\n" \
       "	-I iface/IP	Use interface or IP address as source\n" \
       "	-q		Quiet, only displays output at start\n" \
       "			and when finished"
#define ping6_trivial_usage \
       "[OPTION]... host"
#define ping6_full_usage \
       "Send ICMP ECHO_REQUEST packets to network hosts" \
       "\n\nOptions:\n" \
       "	-c CNT		Send only CNT pings\n" \
       "	-s SIZE		Send SIZE data bytes in packets (default=56)\n" \
       "	-I iface/IP	Use interface or IP address as source\n" \
       "	-q		Quiet, only displays output at start\n" \
       "			and 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"
#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 pkill_trivial_usage \
       "[-l] | [-fnovx] [-signal] pattern"
#define pkill_full_usage \
       "Send a signal to process(es) selected by regex pattern" \
       "\n\nOptions:\n" \
       "	-l	List all signals\n" \
       "	-f	Match against entire command line\n" \
       "	-n	Signal the newest process only\n" \
       "	-o	Signal the oldest process only\n" \
       "	-v	Negate the matching\n" \
       "	-x	Match whole name (not substring)"

#define poweroff_trivial_usage \
       "[-d delay] [-n] [-f]"
#define poweroff_full_usage \
       "Halt and shut off power" \
       "\n\nOptions:\n" \
       "	-d	Delay interval for halting\n" \
       "	-n	No call to sync()\n" \
       "	-f	Force power off (don't go through init)"

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

#define printf_trivial_usage \
       "FORMAT [ARGUMENT...]"
#define printf_full_usage \
       "Format and print 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 ENABLE_DESKTOP

#define ps_trivial_usage \
       ""
#define ps_full_usage \
       "Report process status" \
       "\n\nOptions:" \
       "\n	-o col1,col2=header	Select columns for display" \

#else /* !ENABLE_DESKTOP */

#if !defined CONFIG_SELINUX && !ENABLE_FEATURE_PS_WIDE
#define USAGE_PS "\nThis version of ps accepts no options"
#else
#define USAGE_PS "\nOptions:"
#endif

#define ps_trivial_usage \
       ""
#define ps_full_usage \
       "Report process status\n" \
	USAGE_PS \
	USE_SELINUX( \
       "\n	-Z	Show SE Linux context") \
	USE_FEATURE_PS_WIDE( \
       "\n	w	Wide output")

#endif /* ENABLE_DESKTOP */

#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 pscan_trivial_usage \
       "[-p MIN_PORT] [-P MAX_PORT] [-t TIMEOUT] [-T MIN_RTT] HOST"
#define pscan_full_usage \
       "Scan a host, print all open ports" \
       "\n\nOptions:" \
     "\n	-p	Scan from this port (default 1)" \
     "\n	-P	Scan up to this port (default 1024)" \
     "\n	-t	Timeout (default 5000 ms)" \
     "\n	-T	Minimum rtt (default 5 ms, increase for congested hosts)" \

#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 raidautorun_trivial_usage \
       "DEVICE"
#define raidautorun_full_usage \
       "Tell the kernel to automatically search and start RAID arrays"
#define raidautorun_example_usage \
       "$ raidautorun /dev/md0"

#define rdate_trivial_usage \
       "[-sp] HOST"
#define rdate_full_usage \
       "Get and possibly set the system date and time from a remote HOST" \
       "\n\nOptions:\n" \
       "	-s	Set the system date and time (default)\n" \
       "	-p	Print the date and time"

#define readahead_trivial_usage \
       "[FILE]..."
#define readahead_full_usage \
       "Preload FILE(s) in RAM cache so that subsequent reads for those" \
       "files do not block on disk I/O"

#define readlink_trivial_usage \
	USE_FEATURE_READLINK_FOLLOW("[-f] ") "FILE"
#define readlink_full_usage \
       "Display the value of a symlink" \
	USE_FEATURE_READLINK_FOLLOW( \
       "\n\nOptions:\n" \
       "	-f	Canonicalize by following all symlinks")

#define readprofile_trivial_usage \
       "[OPTIONS]..."
#define readprofile_full_usage \
       "Options:\n" \
       "	-m mapfile	(Default: /boot/System.map)\n" \
       "	-p profile	(Default: /proc/profile)\n" \
       "	-M mult		Set the profiling multiplier to mult\n" \
       "	-i		Print only info about the sampling step\n" \
       "	-v		Verbose\n" \
       "	-a		Print all symbols, even if count is 0\n" \
       "	-b		Print individual histogram-bin counts\n" \
       "	-s		Print individual counters within functions\n" \
       "	-r		Reset all the counters (root only)\n" \
       "	-n		Disable byte order auto-detection"

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

#define reboot_trivial_usage \
       "[-d delay] [-n] [-f]"
#define reboot_full_usage \
       "Reboot the system" \
       "\n\nOptions:\n" \
       "	-d	Delay interval for rebooting\n" \
       "	-n	No call to sync()\n" \
       "	-f	Force reboot (don't go through init)"

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

#define reset_trivial_usage \
       ""
#define reset_full_usage \
       "Reset the screen"

#define resize_trivial_usage \
       ""
#define resize_full_usage \
       "Resize the screen"

#define restorecon_trivial_usage \
       "[-iFnrRv] [-e excludedir]... [-o filename] [-f filename | pathname]"
#define restorecon_full_usage \
       "Reset security contexts of files in pathname\n" \
       "\n	-i		Ignore files that do not exist" \
       "\n	-f file		File with list of files to process. Use - for stdin" \
       "\n	-e directory	Directory to exclude" \
       "\n	-R,-r		Recurse directories" \
       "\n	-n		Don't change any file labels" \
       "\n	-o file		Save list of files with incorrect context" \
       "\n	-v		Verbose" \
       "\n	-vv		Show changed labels" \
       "\n	-F		Force reset of context to match file_context" \
       "\n			for customizable files, or the user section," \
       "\n			if it has changed"

#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\nOptions:\n" \
       "	-i	Always prompt before removing each destination\n" \
       "	-f	Remove existing destinations, never prompt\n" \
       "	-r,-R	Remove 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, if it is empty"
#define rmdir_example_usage \
       "# rmdir /tmp/foo\n"

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

#define route_trivial_usage \
       "[{add|del|delete}]"
#define route_full_usage \
       "Edit the kernel's routing tables" \
       "\n\nOptions:\n" \
       "	-n	Dont resolve names\n" \
       "	-e	Display other/more information\n" \
       "	-A inet" USE_FEATURE_IPV6("{6}") "	Select address family"

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

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

#define runcon_trivial_usage \
       "[-c] [-u USER] [-r ROLE] [-t TYPE] [-l RANGE] COMMAND [args]\n" \
       "	runcon CONTEXT COMMAND [args]"
#define runcon_full_usage \
       "Run a program in a different security context\n\n" \
       "	CONTEXT		Complete security context\n" \
	USE_GETOPT_LONG( \
       "	-c,--compute	Compute process transition context before modifying\n" \
       "	-t,--type=TYPE	Type (for same role as parent)\n" \
       "	-u,--user=USER	User identity\n" \
       "	-r,--role=ROLE	Role\n" \
       "	-l,--range=RNG	Levelrange" \
	) \
	SKIP_GETOPT_LONG( \
       "	-c	Compute process transition context before modifying\n" \
       "	-t TYPE	Type (for same role as parent)\n" \
       "	-u USER	User identity\n" \
       "	-r ROLE	Role\n" \
       "	-l RNG	Levelrange" \
	)

#define run_parts_trivial_usage \
       "[-t] "USE_FEATURE_RUN_PARTS_FANCY("[-l] ")"[-a ARG] [-u MASK] DIRECTORY"
#define run_parts_full_usage \
       "Run a bunch of scripts in a directory" \
       "\n\nOptions:\n" \
       "	-t	Prints what would be run, but does not actually run anything\n" \
       "	-a ARG	Pass ARG as an argument for every program invoked\n" \
       "	-u MASK	Set the umask to MASK before executing every program" \
USE_FEATURE_RUN_PARTS_FANCY("\n	-l	Prints names of all matching files even when they are not executable")

#define run_parts_example_usage \
       "$ run-parts -a start /etc/init.d\n" \
       "$ run-parts -a stop=now /etc/init.d\n\n" \
       "Let's assume you have a script foo/dosomething:\n" \
       "#!/bin/sh\n" \
       "for i in $*; do eval $i; done; unset i\n" \
       "case \"$1\" in\n" \
       "start*) echo starting something;;\n" \
       "stop*) set -x; shutdown -h $stop;;\n" \
       "esac\n\n" \
       "Running this yields:\n" \
       "$run-parts -a stop=+4m foo/\n" \
       "+ shutdown -h +4m"

#define runlevel_trivial_usage \
       "[utmp]"
#define runlevel_full_usage \
       "Find the current and previous system runlevel.\n\n" \
       "If no utmp file exists or if no runlevel record can be found,\n" \
       "print \"unknown\""
#define runlevel_example_usage \
       "$ runlevel /var/run/utmp\n" \
       "N 2"

#define runsv_trivial_usage \
       "dir"
#define runsv_full_usage \
       "Start and monitor a service and optionally an appendant log service"

#define runsvdir_trivial_usage \
       "[-P] dir"
#define runsvdir_full_usage \
       "Start a runsv process for each subdirectory"

#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" \
       "	-e script	Add the script to the commands to be executed\n" \
       "	-f scriptfile	Add script-file contents to the\n" \
       "			commands to be executed\n" \
       "	-i		Edit files in-place\n" \
       "	-n		Suppress automatic printing of pattern space\n" \
       "	-r		Use 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 selinuxenabled_trivial_usage
#define selinuxenabled_full_usage

#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\nArguments:\n" \
       "	LAST\n" \
       "	FIRST LAST\n" \
       "	FIRST INCREMENT LAST"

#define sestatus_trivial_usage \
       "[-vb]"
#define sestatus_full_usage \
       "-v	Verbose\n" \
       "-b	Display current state of booleans"

#define setconsole_trivial_usage \
       "[-r" USE_FEATURE_SETCONSOLE_LONG_OPTIONS("|--reset") "] [DEVICE]"
#define setconsole_full_usage \
       "Redirect system console output to DEVICE (default: /dev/tty)" \
       "\n\nOptions:\n" \
       "	-r	Reset output to /dev/console"

#define setenforce_trivial_usage \
       "[Enforcing | Permissive | 1 | 0]"
#define setenforce_full_usage

#define setfiles_trivial_usage \
       "[-dnpqsvW] [-e dir]... [-o file] [-r alt_root_path]" \
	USE_FEATURE_SETFILES_CHECK_OPTION( \
       " [-c policyfile] spec_file" \
	) \
       " pathname"

#define setfiles_full_usage \
       "Reset file contexts under pathname according to spec_file" \
	USE_FEATURE_SETFILES_CHECK_OPTION( \
       "\n	-c file	Check the validity of the contexts against the specified binary policy" \
	) \
       "\n	-d	Show which specification matched each file" \
       "\n	-l	Log changes in file labels to syslog" \
       "\n	-n	Don't change any file labels" \
       "\n	-q	Suppress warnings" \
       "\n	-r dir	Use an altenate root path" \
       "\n	-e dir	Exclude directory" \
       "\n	-F	Force reset of context to match file_context for customizable files" \
       "\n	-o file	Save list of files with incorrect context" \
       "\n	-s	Take a list of files from standard input (instead of command line)" \
       "\n	-v	Show changes in file labels, if type or role are changing" \
       "\n	-vv	Show changes in file labels, if type, role, or user are changing" \
       "\n	-W	Display warnings about entries that had no matching files"

#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 setlogcons_trivial_usage \
       "N"
#define setlogcons_full_usage \
       "Redirect the kernel output to console N (0 for current)"

#define setsebool_trivial_usage \
       "boolean value"

#define setsebool_full_usage \
       "Change boolean setting"

#define setsid_trivial_usage \
       "program [arg...]"
#define setsid_full_usage \
       "Run 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 \
       "lash is deprecated, please use hush"

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

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

#define slattach_trivial_usage \
       "[-cehmLF] [-s speed] [-p protocol] DEVICEs"
#define slattach_full_usage \
       "Attach network interface(s) to serial line(s)\n" \
     "\nOptions:" \
     "\n	-p	Set protocol (slip, cslip, slip6, clisp6 or adaptive)" \
     "\n	-s	Set line speed" \
     "\n	-e	Exit after initializing device" \
     "\n	-h	Exit when the carrier is lost" \
     "\n	-c	Execute a command when the line is hung up" \
     "\n	-m	Do NOT initialize the line in raw 8 bits mode" \
     "\n	-L	Enable 3-wire operation" \
     "\n	-F	Disable RTS/CTS flow control" \

#define sleep_trivial_usage \
	USE_FEATURE_FANCY_SLEEP("[") "N" USE_FEATURE_FANCY_SLEEP("]...")
#define sleep_full_usage \
	SKIP_FEATURE_FANCY_SLEEP("Pause for N seconds") \
	USE_FEATURE_FANCY_SLEEP( \
       "Pause for a time equal to the total of the args given, where each arg can\n" \
       "have 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" \
	USE_FEATURE_FANCY_SLEEP( \
       "$ sleep 1d 3h 22m 8s\n" \
       "[98528 second delay results]\n")

#define sort_trivial_usage \
       "[-nru" \
	USE_FEATURE_SORT_BIG("gMcszbdfimSTokt] [-o outfile] [-k start[.offset][opts][,end[.offset][opts]] [-t char") \
       "] [FILE]..."
#define sort_full_usage \
       "Sort lines of text in the specified files" \
       "\n\nOptions:\n" \
	USE_FEATURE_SORT_BIG( \
       "	-b	Ignore leading blanks\n" \
       "	-c	Check whether input is sorted\n" \
       "	-d	Dictionary order (blank or alphanumeric only)\n" \
       "	-f	Ignore case\n" \
       "	-g	General numerical sort\n" \
       "	-i	Ignore unprintable characters\n" \
       "	-k	Sort key\n" \
       "	-M	Sort month\n") \
       "	-n	Sort numbers\n" \
	USE_FEATURE_SORT_BIG( \
       "	-o	Output to file\n" \
       "	-k	Sort by key\n" \
       "	-t	Use key separator other than whitespace\n") \
       "	-r	Reverse sort order\n" \
	USE_FEATURE_SORT_BIG( \
       "	-s	Stable (don't sort ties alphabetically)\n") \
       "	-u	Suppress duplicate lines" \
	USE_FEATURE_SORT_BIG( \
       "\n	-z	Input terminated by nulls, not newlines\n") \
	USE_FEATURE_SORT_BIG( \
       "	-mST	Ignored for GNU compatibility") \
       ""
#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" \
	USE_FEATURE_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 split_trivial_usage \
       "[OPTION] [INPUT [PREFIX]]"
#define split_full_usage \
       "Options:" \
       "\n	-b n[k|m]	Split by bytes" \
       "\n	-l n		Split by lines" \
       "\n	-a n		Use n letters as suffix"
#define split_example_usage \
       "$ split TODO foo\n" \
       "$ cat TODO | split -a 2 -l 2 TODO_\n"

#define start_stop_daemon_trivial_usage \
       "[OPTIONS] [" \
	USE_GETOPT_LONG("--start|--stop") SKIP_GETOPT_LONG("-S|-K") \
       "] ... [-- arguments...]"
#define start_stop_daemon_full_usage \
       "Start and stop services" \
       "\n\nOptions:" \
	USE_GETOPT_LONG( \
       "\n	-S,--start		Start" \
       "\n	-K,--stop		Stop" \
       "\n	-a,--startas pathname	Starts process specified by pathname" \
       "\n	-b,--background		Put process into background" \
       "\n	-u,--user username|uid	Stop this user's processes" \
       "\n	-x,--exec executable	Program to either start or check" \
       "\n	-n,--name process-name	Stop processes with this name" \
       "\n	-p,--pidfile pid-file	Save or load pid using a pid-file" \
       "\n	-m,--make-pidfile	Create the -p file and enter pid in it" \
       "\n	-q,--quiet		Quiet" \
	USE_FEATURE_START_STOP_DAEMON_FANCY( \
       "\n	-o,--oknodo		Exit status 0 if nothing done" \
       "\n	-v,--verbose		Verbose" \
       "\n	-N,--nicelevel N	Add N to process's nice level" \
	) \
       "\n	-s,--signal signal	Signal to send (default TERM)" \
       "\n	-c,--chuid user[:[grp]]	Change to specified user/group" \
	) \
	SKIP_GETOPT_LONG( \
       "\n	-S		Start" \
       "\n	-K		Stop" \
       "\n	-a pathname	Starts process specified by pathname" \
       "\n	-b		Put process into background" \
       "\n	-u username|uid	Stop this user's processes" \
       "\n	-x executable	Program to either start or check" \
       "\n	-n process-name	Stop processes with this name" \
       "\n	-p pid-file	Save or load pid using a pid-file" \
       "\n	-m		Create the -p file and enter pid in it" \
       "\n	-q		Quiet" \
	USE_FEATURE_START_STOP_DAEMON_FANCY( \
       "\n	-o		Exit status 0 if nothing done" \
       "\n	-v		Verbose" \
       "\n	-N N		Add N to process's nice level" \
	) \
       "\n	-s signal	Signal to send (default TERM)" \
       "\n	-c user[:[grp]]	Change to specified user/group" \
	)

#define stat_trivial_usage \
       "[OPTION] FILE..."
#define stat_full_usage \
       "Display file (default) or filesystem status" \
       "\n\nOptions:\n" \
	USE_FEATURE_STAT_FORMAT( \
       "	-c fmt	Use the specified format\n") \
       "	-f	Display filesystem status\n" \
       "	-L	Dereference links\n" \
       "	-t	Display info in terse form" \
	USE_SELINUX( \
       "\n	-Z	Print security context" \
	) \
	USE_FEATURE_STAT_FORMAT( \
       "\n\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 symlink\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" \
	USE_SELINUX( \
       " %C	Security context in SELinux\n" \
	) \
       " %i	File System ID in hex\n" \
       " %l	Maximum length of filenames\n" \
       " %n	File name\n" \
       " %s	Block size (for faster transfer)\n" \
       " %S	Fundamental block size (for block counts)\n" \
       " %t	Type in hex\n" \
       " %T	Type in human readable form" \
	)

#define strings_trivial_usage \
       "[-afo] [-n length] [file...]"
#define strings_full_usage \
       "Display printable strings in a binary file" \
       "\n\nOptions:" \
       "\n	-a	Scan whole file (default)" \
       "\n	-f	Precede strings with filenames" \
       "\n	-n N	At least N characters form a string (default 4)" \
       "\n	-o	Precede strings with decimal offsets"

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

#define su_trivial_usage \
       "[OPTION]... [-] [username]"
#define su_full_usage \
       "Change user id or become root" \
       "\n\nOptions:" \
       "\n	-p, -m	Preserve environment" \
       "\n	-c	Command to pass to 'sh -c'" \
       "\n	-s	Shell to use instead of default shell"

#define sulogin_trivial_usage \
       "[OPTION]... [tty-device]"
#define sulogin_full_usage \
       "Single user login" \
       "\n\nOptions:" \
       "\n	-t	Timeout"

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

#define sv_trivial_usage \
       "[-v] [-w sec] command service..."
#define sv_full_usage \
       "Control services monitored by runsv supervisor.\n" \
       "Commands (only first character is enough):\n" \
       "\n" \
       "status: query service status\n" \
       "up: if service isn't running, start it. If service stops, restart it\n" \
       "once: like 'up', but if service stops, don't restart it\n" \
       "down: send TERM and CONT signals. If ./run exits, start ./finish\n" \
       "    if it exists. After it stops, do not restart service\n" \
       "exit: send TERM and CONT signals to service and log service. If they exit,\n" \
       "    runsv exits too\n" \
       "pause, cont, hup, alarm, interrupt, quit, 1, 2, term, kill: send\n" \
       "STOP, CONT, HUP, ALRM, INT, QUIT, USR1, USR2, TERM, KILL signal to service"

#define svlogd_trivial_usage \
       "[-ttv] [-r c] [-R abc] [-l len] [-b buflen] dir..."
#define svlogd_full_usage \
       "Continuously read log data from standard input, optionally " \
       "filter log messages, and write the data to one or more automatically " \
       "rotated logs"

#define swapoff_trivial_usage \
       "[-a] [DEVICE]"
#define swapoff_full_usage \
       "Stop swapping virtual memory pages on DEVICE" \
       "\n\nOptions:\n" \
       "	-a	Stop swapping on all swap devices"

#define swapon_trivial_usage \
       "[-a] [DEVICE]"
#define swapon_full_usage \
       "Start swapping virtual memory pages on DEVICE" \
       "\n\nOptions:\n" \
       "	-a	Start swapping on all swap devices"

#define switch_root_trivial_usage \
       "[-c /dev/console] NEW_ROOT NEW_INIT [ARGUMENTS_TO_INIT]"
#define switch_root_full_usage \
       "Use from PID 1 under initramfs to free initramfs, chroot to NEW_ROOT,\n" \
       "and exec NEW_INIT" \
       "\n\nOptions:\n" \
       "	-c	Redirect console to device on new root"

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

#define sysctl_trivial_usage \
       "[OPTIONS]... [VALUE]..."
#define sysctl_full_usage \
       "Configure kernel parameters at runtime" \
       "\n\nOptions:\n" \
       "	-n	Disable printing of key names\n" \
       "	-e	Don't warn about unknown keys\n" \
       "	-w	Change sysctl setting\n" \
       "	-p FILE	Load sysctl settings from FILE (default /etc/sysctl.conf)\n" \
       "	-a	Display all values\n" \
       "	-A	Display all values in table form"
#define sysctl_example_usage \
       "sysctl [-n] [-e] variable...\n" \
       "sysctl [-n] [-e] -w variable=value...\n" \
       "sysctl [-n] [-e] -a\n" \
       "sysctl [-n] [-e] -p file	(default /etc/sysctl.conf)\n" \
       "sysctl [-n] [-e] -A\n"

#define syslogd_trivial_usage \
       "[OPTION]..."
#define syslogd_full_usage \
       "System logging utility.\n" \
       "Note that this version of syslogd ignores /etc/syslog.conf." \
       "\n\nOptions:" \
       "\n	-n		Run in foreground" \
       "\n	-O FILE		Log to given file (default=/var/log/messages)" \
       "\n	-l n		Set local log level" \
       "\n	-S		Smaller logging output" \
	USE_FEATURE_ROTATE_LOGFILE( \
       "\n	-s SIZE		Max size (KB) before rotate (default=200KB, 0=off)" \
       "\n	-b NUM		Number of rotated logs to keep (default=1, max=99, 0=purge)") \
	USE_FEATURE_REMOTE_LOG( \
       "\n	-R HOST[:PORT]	Log to IP or hostname on PORT (default PORT=514/UDP)" \
       "\n	-L		Log locally and via network (default is network only if -R)") \
	USE_FEATURE_IPC_SYSLOG( \
       "\n	-C[size(KiB)]	Log to shared mem buffer (read it using logread)")
	/* NB: -Csize shouldn't have space (because size is optional) */
/*     "\n	-m MIN		Minutes between MARK lines (default=20, 0=off)" */
#define syslogd_example_usage \
       "$ syslogd -R masterlog:514\n" \
       "$ syslogd -R 192.168.1.1:601\n"

#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\nOptions:" \
	USE_FEATURE_FANCY_TAIL( \
       "\n	-c N[kbm]	Output the last N bytes") \
       "\n	-n N[kbm]	Print last N lines instead of last 10" \
       "\n	-f		Output data as the file grows" \
	USE_FEATURE_FANCY_TAIL( \
       "\n	-q		Never output headers giving file names" \
       "\n	-s SEC		Wait SEC seconds between reads with -f" \
       "\n	-v		Always 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"

#define tar_trivial_usage \
       "-[" USE_FEATURE_TAR_CREATE("c") USE_FEATURE_TAR_GZIP("z") \
	USE_FEATURE_TAR_BZIP2("j") USE_FEATURE_TAR_LZMA("a") \
	USE_FEATURE_TAR_COMPRESS("Z") "xtvO] " \
	USE_FEATURE_TAR_FROM("[-X FILE] ") \
       "[-f TARFILE] [-C DIR] [FILE(s)]..."
#define tar_full_usage \
       "Create, extract, or list files from a tar file" \
       "\n\nOptions:\n" \
	USE_FEATURE_TAR_CREATE( \
       "	c	Create\n") \
       "	x	Extract\n" \
       "	t	List\n" \
       "\nArchive format selection:\n" \
	USE_FEATURE_TAR_GZIP( \
       "	z	Filter the archive through gzip\n") \
	USE_FEATURE_TAR_BZIP2( \
       "	j	Filter the archive through bzip2\n") \
	USE_FEATURE_TAR_LZMA( \
       "	a	Filter the archive through lzma\n") \
	USE_FEATURE_TAR_COMPRESS( \
       "	Z	Filter the archive through compress\n") \
       "\nFile selection:\n" \
       "	f	Name of TARFILE or \"-\" for stdin\n" \
       "	O	Extract to stdout\n" \
	USE_FEATURE_TAR_FROM( \
       "	exclude	File to exclude\n" \
       "	X	File with names to exclude\n") \
       "	C	Change to directory DIR before operation\n" \
       "	v	Verbose"
#define tar_example_usage \
       "$ zcat /tmp/tarball.tar.gz | tar -xf -\n" \
       "$ tar -cf /tmp/tarball.tar /usr/local\n"

#define taskset_trivial_usage \
       "[OPTIONS] [mask] [pid | command [arg]...]"
#define taskset_full_usage \
       "Set or get CPU affinity" \
       "\n\nOptions:\n" \
       "	-p	Operate on an existing PID"
#define taskset_example_usage \
       "$ taskset 0x7 ./dgemm_test&\n" \
       "$ taskset -p 0x1 $!\n" \
       "pid 4790's current affinity mask: 7\n" \
       "pid 4790's new affinity mask: 1\n" \
       "$ taskset 0x7 /bin/sh -c './taskset -p 0x1 $$'\n" \
       "pid 6671's current affinity mask: 1\n" \
       "pid 6671's new affinity mask: 1\n" \
       "$ taskset -p 1\n" \
       "pid 1's current affinity mask: 3\n"

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

#if ENABLE_FEATURE_TELNET_AUTOLOGIN
#define telnet_trivial_usage \
       "[-a] [-l USER] HOST [PORT]"
#define telnet_full_usage \
       "Connect to remote telnet server" \
       "\n\nOptions:\n" \
       "	-a	Attempt an automatic login with the USER variable\n" \
       "	-l USER	Attempt an automatic login with the USER argument\n" \
       "	HOST	The official name, alias or the IP address of the\n" \
       "		remote host\n" \
       "	PORT	The remote port number to connect to. If it is not\n" \
       "		specified, the default telnet (23) port is used."
#else
#define telnet_trivial_usage \
       "HOST [PORT]"
#define telnet_full_usage \
       "Connect to remote telnet server"
#endif

#define telnetd_trivial_usage \
       "[OPTION]"
#define telnetd_full_usage \
       "Handle incoming telnet connections" \
	SKIP_FEATURE_TELNETD_STANDALONE(" via inetd") \
       "\n\nOptions:" \
       "\n	-l LOGIN	Exec LOGIN on connect" \
       "\n	-f issue_file	Display issue_file instead of /etc/issue" \
       "\n	-K		Close connection as soon as login exits" \
       "\n			(normally wait until all programs close slave pty)" \
	USE_FEATURE_TELNETD_STANDALONE( \
       "\n	-p PORT		Port to listen to" \
       "\n	-b ADDR		Address to bind to" \
       "\n	-F		Run in foreground" \
       "\n	-i		Run as inetd subservice" \
	)

#define test_trivial_usage \
       "EXPRESSION\n  or   [ EXPRESSION ]"
#define test_full_usage \
       "Check file types and compares values returning an exit code\n" \
       "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"

#define tcpsvd_trivial_usage \
       "[-hEv] [-c n] [-C n:msg] [-b n] [-u user] [-l name] ip port prog..."
/* with not-implemented options: */
/*     "[-hpEvv] [-c n] [-C n:msg] [-b n] [-u user] [-l name] [-i dir|-x cdb] [-t sec] ip port prog..." */
#define tcpsvd_full_usage \
       "Creates TCP socket, binds it to ip:port and listens on it\n" \
       "for incoming connections. For each connection it runs prog." \
     "\n" \
     "\nip		IP to listen on. '0' = all" \
     "\nport		Port to listen on" \
     "\nprog [arg]	Program to run" \
     "\n-l name		Local hostname (else looks up local hostname in DNS)" \
     "\n-u user[:group]	Change to user/group after bind" \
     "\n-c n		Handle up to n connections simultaneously" \
     "\n-b n		Allow a backlog of approximately n TCP SYNs" \
     "\n-C n[:msg]	Allow only up to n connections from the same IP" \
     "\n		New connections from this IP address are closed" \
     "\n		immediately. 'msg' is written to the peer before close" \
     "\n-h		Look up peer's hostname" \
     "\n-E		Do not set up environment variables" \
     "\n-v		Verbose"

#define udpsvd_trivial_usage \
       "[-hEv] [-c n] [-u user] [-l name] ip port prog"
#define udpsvd_full_usage \
       "Creates UDP socket, binds it to ip:port and listens on it\n" \
       "for incoming packets. For each packet it runs prog\n" \
       "(redirecting all further packets with same peer ip:port to it)." \
     "\n" \
     "\nip		IP to listen on. '0' = all" \
     "\nport		Port to listen on" \
     "\nprog [arg]	Program to run" \
     "\n-l name		Local hostname (else looks up local hostname in DNS)" \
     "\n-u user[:group]	Change to user/group after bind" \
     "\n-c n		Handle up to n connections simultaneously" \
     "\n-h		Look up peer's hostname" \
     "\n-E		Do not set up environment variables" \
     "\n-v		Verbose"

#define tftp_trivial_usage \
       "[OPTION]... HOST [PORT]"
#define tftp_full_usage \
       "Transfer a file from/to tftp server using \"octet\" mode" \
       "\n\nOptions:" \
       "\n	-l FILE	Local FILE" \
       "\n	-r FILE	Remote FILE" \
	USE_FEATURE_TFTP_GET( \
       "\n	-g	Get file" \
	) \
	USE_FEATURE_TFTP_PUT( \
       "\n	-p	Put file" \
	) \
	USE_FEATURE_TFTP_BLOCKSIZE( \
       "\n	-b SIZE	Transfer blocks of SIZE octets" \
	)
#define time_trivial_usage \
       "[OPTION]... COMMAND [ARGS...]"
#define time_full_usage \
       "Run the program COMMAND with arguments ARGS. When COMMAND finishes,\n" \
       "COMMAND's resource usage information is displayed." \
       "\n\nOptions:\n" \
       "	-v	Verbose"

#define top_trivial_usage \
       "[-b] [-n count] [-d seconds]"
#define top_full_usage \
       "Provide a view of process activity in real time.\n" \
       "Read the status of all processes from /proc each <seconds>\n" \
       "and show the status for however many processes will fit on the screen."

#define touch_trivial_usage \
       "[-c] FILE [FILE...]"
#define touch_full_usage \
       "Update the last-modified date on the given FILE[s]" \
       "\n\nOptions:\n" \
       "	-c	Do 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\nOptions:\n" \
       "	-c	Take complement of STRING1\n" \
       "	-d	Delete input characters coded STRING1\n" \
       "	-s	Squeeze 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" \
       "	[-s src_addr] [-t tos] [-w wait] [-g gateway] [-i iface]\n" \
       "	[-z pausemsecs] host [data size]"
#define traceroute_full_usage \
       "Trace the route to \"host\"" \
       "\n\nOptions:\n" \
       "	-F	Set the don't fragment bit\n" \
       "	-I	Use ICMP ECHO instead of UDP datagrams\n" \
       "	-l	Display the ttl value of the returned packet\n" \
       "	-d	Set SO_DEBUG options to socket\n" \
       "	-n	Print hop addresses numerically rather than symbolically\n" \
       "	-r	Bypass the normal routing tables and send directly to a host\n" \
       "	-v	Verbose\n" \
       "	-m max_ttl	Max time-to-live (max number of hops)\n" \
       "	-p port#	Base UDP port number used in probes\n" \
       "			(default is 33434)\n" \
       "	-q nqueries	Number of probes per 'ttl' (default 3)\n" \
       "	-s src_addr	IP address to use as the source address\n" \
       "	-t tos		Type-of-service in probe packets (default 0)\n" \
       "	-w wait		Time in seconds to wait for a response\n" \
       "			(default 3 sec)\n" \
       "	-g		Loose source route gateway (8 max)"

#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 file name of standard input's terminal" \
	USE_INCLUDE_SUSv2( \
       "\n\nOptions:\n" \
       "	-s	Print nothing, only return exit status")
#define tty_example_usage \
       "$ tty\n" \
       "/dev/tty2\n"

#define ttysize_trivial_usage \
       "[w] [h]"
#define ttysize_full_usage \
       "Print dimension(s) of standard input's terminal, on error return 80x25"

#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"

#define udhcpc_trivial_usage \
       "[-Cfbnqtv] [-c CID] [-V VCLS] [-H HOSTNAME] [-i INTERFACE]\n" \
       "	[-p pidfile] [-r IP] [-s script] [-O dhcp-option]..."
#define udhcpc_full_usage \
	USE_GETOPT_LONG( \
       "	-V,--vendorclass=CLASSID	Vendor class identifier" \
       "\n	-i,--interface=INTERFACE	Interface to use (default eth0)" \
       "\n	-H,-h,--hostname=HOSTNAME	Client hostname" \
       "\n	-c,--clientid=CLIENTID	Client identifier" \
       "\n	-C,--clientid-none	Suppress default client identifier" \
       "\n	-p,--pidfile=file	Create pidfile" \
       "\n	-r,--request=IP		IP address to request" \
       "\n	-s,--script=file	Run file at dhcp events (default /usr/share/udhcpc/default.script)" \
       "\n	-t,--retries=N		Send up to N request packets" \
       "\n	-T,--timeout=N		Try to get a lease for N seconds (default 3)" \
       "\n	-A,--tryagain=N		Wait N seconds (default 20) after failure" \
       "\n	-f,--foreground	Run in foreground" \
       "\n	-b,--background	Background if lease is not immediately obtained" \
       "\n	-S,--syslog	Log to syslog too" \
       "\n	-n,--now	Exit with failure if lease is not immediately obtained" \
       "\n	-q,--quit	Quit after obtaining lease" \
       "\n	-R,--release	Release IP on quit" \
       "\n	-O,--request-option=OPT	Request DHCP option OPT from server" \
	USE_FEATURE_UDHCPC_ARPING( \
       "\n	-a,--arping	Use arping to validate offered address" \
	) \
	) \
	SKIP_GETOPT_LONG( \
       "	-V CLASSID	Vendor class identifier" \
       "\n	-i INTERFACE	Interface to use (default: eth0)" \
       "\n	-H,-h HOSTNAME	Client hostname" \
       "\n	-c CLIENTID	Client identifier" \
       "\n	-C		Suppress default client identifier" \
       "\n	-p file		Create pidfile" \
       "\n	-r IP		IP address to request" \
       "\n	-s file		Run file at dhcp events (default /usr/share/udhcpc/default.script)" \
       "\n	-t N		Send up to N request packets" \
       "\n	-T N		Try to get a lease for N seconds (default 3)" \
       "\n	-A N		Wait N seconds (default 20) after failure" \
       "\n	-f		Run in foreground" \
       "\n	-b		Background if lease is not immediately obtained" \
       "\n	-S		Log to syslog too" \
       "\n	-n		Exit with failure if lease is not immediately obtained" \
       "\n	-q		Quit after obtaining lease" \
       "\n	-R		Release IP on quit" \
       "\n	-O OPT		Request DHCP option OPT from server" \
	USE_FEATURE_UDHCPC_ARPING( \
       "\n	-a		Use arping to validate offered address" \
	) \
	)

#define udhcpd_trivial_usage \
       "[-fS] [configfile]" \

#define udhcpd_full_usage \
       "DHCP server" \
       "\n	-f	Run in foreground" \
       "\n	-S	Log to syslog too"

#define umount_trivial_usage \
       "[flags] FILESYSTEM|DIRECTORY"
#define umount_full_usage \
       "Unmount file systems" \
       "\n\nOptions:\n" \
	USE_FEATURE_UMOUNT_ALL( \
       "\n	-a	Unmount all file systems" USE_FEATURE_MTAB_SUPPORT(" in /etc/mtab")) \
	USE_FEATURE_MTAB_SUPPORT( \
       "\n	-n	Don't erase /etc/mtab entries") \
       "\n	-r	Try to remount devices as read-only if mount is busy" \
       "\n	-l	Lazy umount (detach filesystem)" \
       "\n	-f	Force umount (i.e., unreachable NFS server)" \
	USE_FEATURE_MOUNT_LOOP( \
       "\n	-D	Do not free loop device (if a loop device has been used)")
#define umount_example_usage \
       "$ umount /dev/hdc1\n"

#define uname_trivial_usage \
       "[-amnrspv]"
#define uname_full_usage \
       "Print system information." \
       "\n\nOptions:\n" \
       "	-a	Print all\n" \
       "	-m	The machine (hardware) type\n" \
       "	-n	Hostname\n" \
       "	-r	OS release\n" \
       "	-s	OS name (default)\n" \
       "	-p	Processor type\n" \
       "	-v	OS 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\nOptions:\n" \
       "	-c	Extract to stdout\n" \
       "	-f	Overwrite an existing file"

#define unexpand_trivial_usage \
       "[-f][-a][-t NUM] [FILE|-]"
#define unexpand_full_usage \
       "Convert spaces to tabs, writing to standard output." \
       "\n\nOptions:" \
	USE_FEATURE_UNEXPAND_LONG_OPTIONS( \
       "\n	-a,--all	Convert all blanks" \
       "\n	-f,--first-only	Convert only leading blanks" \
       "\n	-t,--tabs=N	Tabstops every N chars" \
	) \
	SKIP_FEATURE_UNEXPAND_LONG_OPTIONS( \
       "\n	-a	Convert all blanks" \
       "\n	-f	Convert only leading blanks" \
       "\n	-t N	Tabstops every N chars" \
	)

#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\nOptions:\n" \
       "	-c	Prefix lines by the number of occurrences\n" \
       "	-d	Only print duplicate lines\n" \
       "	-u	Only print unique lines\n" \
       "	-f N	Skip the first N fields\n" \
       "	-s N	Skip 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 \
       "Convert 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, use stdin/stdout." \
       "\n\nOptions:\n" \
       "	-u	Output will be in UNIX format\n" \
       "	-d	Output will be in DOS format"

#define unzip_trivial_usage \
       "[-opts[modifiers]] file[.zip] [list] [-x xlist] [-d exdir]"
#define unzip_full_usage \
       "Extract files from ZIP archives" \
       "\n\nOptions:\n" \
       "	-l	List archive contents (with -q for short form)\n" \
       "	-n	Never overwrite existing files (default)\n" \
       "	-o	Overwrite files without prompting\n" \
       "	-p	Send output to stdout\n" \
       "	-q	Quiet\n" \
       "	-x	Exclude these files\n" \
       "	-d	Extract 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 \
       "[-o outfile] [infile]"
#define uudecode_full_usage \
       "Uudecode a file\n" \
       "NB: finds outfile name in uuencoded source unless -o is given"
#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 \
       "[-m] [infile] stored_filename"
#define uuencode_full_usage \
       "Uuencode a file to stdout" \
       "\n\nOptions:\n" \
       "	-m	Use 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 \
       "Create and remove virtual ethernet devices" \
       "\n\nOptions:\n" \
       "	add		[interface-name] [vlan_id]\n" \
       "	rem		[vlan-name]\n" \
       "	set_flag	[interface-name] [flag-num] [0 | 1]\n" \
       "	set_egress_map	[vlan-name] [skb_priority] [vlan_qos]\n" \
       "	set_ingress_map	[vlan-name] [skb_priority] [vlan_qos]\n" \
       "	set_name_type	[name-type]"

#define vi_trivial_usage \
       "[OPTION] [FILE]..."
#define vi_full_usage \
       "Edit FILE" \
       "\n\nOptions:\n" \
       "	-R	Read-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\nOptions:\n" \
       "	-a	Lock all VTs"

#define watch_trivial_usage \
       "[-n seconds] [-t] COMMAND..."
#define watch_full_usage \
       "Execute a program periodically" \
       "\n\nOptions:\n" \
       "	-n	Loop period in seconds (default 2)\n" \
       "	-t	Don't print header"
#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 N[ms]] [-F] DEV"
#define watchdog_full_usage \
       "Periodically write to watchdog device DEV" \
       "\n\nOptions:" \
     "\n	-t N	Timer period (default 30)" \
     "\n	-F	Run in foreground" \
     "\n" \
     "\nUse -t 500ms to specify period in milliseconds"

#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\nOptions:\n" \
       "	-c	Print the byte counts\n" \
       "	-l	Print the newline counts\n" \
       "	-L	Print the length of the longest line\n" \
       "	-w	Print the word counts"
#define wc_example_usage \
       "$ wc /etc/passwd\n" \
       "     31      46    1365 /etc/passwd\n"

#define wget_trivial_usage \
	USE_GETOPT_LONG( \
       "[-c|--continue] [-s|--spider] [-q|--quiet] [-O|--output-document file]\n" \
       "	[--header 'header: value'] [-Y|--proxy on/off] [-P DIR]\n" \
       "	[-U|--user-agent agent] url" \
	) \
	SKIP_GETOPT_LONG( \
       "[-csq] [-O file] [-Y on/off] [-P DIR] [-U agent] url" \
	)
#define wget_full_usage \
       "Retrieve files via HTTP or FTP" \
       "\n\nOptions:\n" \
       "	-s	Spider mode - only check file existence\n" \
       "	-c	Continue retrieval of aborted transfer\n" \
       "	-q	Quiet\n" \
       "	-P	Set directory prefix to DIR\n" \
       "	-O	Save to filename ('-' for stdout)\n" \
       "	-U	Adjust 'User-Agent' field\n" \
       "	-Y	Use proxy ('on' or 'off')"

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

#define who_trivial_usage \
       "[-a]"
#define who_full_usage \
       "Show who is logged on" \
       "\n\nOptions:\n" \
       "	-a	show all"

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

#define xargs_trivial_usage \
       "[OPTIONS] [COMMAND] [ARGS...]"
#define xargs_full_usage \
       "Execute COMMAND on every item given by standard input" \
       "\n\nOptions:\n" \
	USE_FEATURE_XARGS_SUPPORT_CONFIRMATION( \
       "	-p	Prompt the user about whether to run each command\n") \
       "	-r	Do not run command for empty read lines\n" \
	USE_FEATURE_XARGS_SUPPORT_TERMOPT( \
       "	-x	Exit if the size is exceeded\n") \
	USE_FEATURE_XARGS_SUPPORT_ZERO_TERM( \
       "	-0	Input filenames are terminated by a null character\n") \
       "	-t	Print 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 output 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 \
       "Manage a ZeroConf IPv4 link-local address" \
       "\n\nOptions:\n" \
       "	-f		Run in foreground\n" \
       "	-q		Quit after address (no daemon)\n" \
       "	-r 169.254.x.x	Request this address first\n" \
       "	-v		Verbose"

#endif /* __BB_USAGE_H__ */
