Apply patch from Ghozlane Toumi to add -inum support to find.
[oweals/busybox.git] / include / usage.h
index 33a81c4671b4c3f2e40c39f958617e0e6ce9ce2e..077306bdf7733cec885a794f5480cf7cf2f50615 100644 (file)
@@ -1,12 +1,12 @@
 #define addgroup_trivial_usage \
-       "[OPTIONS] <group_name>"
+       "[OPTIONS] group_name [user_name]"
 #define addgroup_full_usage \
        "Adds a group to the system" \
        "Options:\n" \
            "\t-g\t\tspecify gid\n"
 
 #define adduser_trivial_usage \
-       "[OPTIONS] <user_name>"
+       "[OPTIONS] user_name"
 #define adduser_full_usage \
        "Adds a user to the system" \
        "Options:\n" \
        "\t-x\t\textract\n" \
        "\t-v\t\tverbosely list files processed\n"
 
+#define arping_trivial_usage \
+       "[-fqbDUA] [-c count] [-w timeout] [-I device] [-s sender] target\n"
+#define arping_full_usage \
+       "Ping hosts by ARP requests/replies.\n\n" \
+       "Options:\n" \
+       "\t-f\t\tQuit on first ARP reply\n" \
+       "\t-q\t\tBe quiet\n" \
+       "\t-b\t\tKeep broadcasting, don't go unicast\n" \
+       "\t-D\t\tDuplicated address detection mode\n" \
+       "\t-U\t\tUnsolicited ARP mode, update your neighbours\n" \
+       "\t-A\t\tARP answer mode, update your neighbours\n" \
+       "\t-c count\tStop after sending count ARP request packets\n" \
+       "\t-w timeout\tTime to wait for ARP reply, in seconds\n" \
+       "\t-I device\tOutgoing interface name, default is eth0\n" \
+       "\t-s sender\tSet specific sender IP address\n" \
+       "\ttarget\t\tTarget IP address of ARP request\n"
+
 #define        awk_trivial_usage \
        "[-v var=val][-F sep] { -f progname | 'programtext' } [FILE ...]"
 #define        awk_full_usage \
        "\tu\t\tunconditional overwrite\n" \
        "\tF\t\tinput from file"
        
+#define crond_trivial_usage \
+       "-d[#] -c <crondir> -f -b"
+#define crond_full_usage \
+       "\t-d [#] -l [#] -S -L logfile -f -b -c dir\n" \
+       "\t-d num\tdebug level\n" \
+       "\t-l num\tlog level (8 - default)\n" \
+       "\t-S\tlog to syslod (defualt)\n" \
+       "\t-L file\tlog to file\n" \
+       "\t-f\trun in fordeground\n" \
+       "\t-b\trun in background (default)\n" \
+       "\t-c dir\tworking dir"
+
+#define crontab_trivial_usage \
+       "crontab [-c dir] {file|-}|[-u|-l|-e|-d user]"
+#define crontab_full_usage \
+       "\tfile <opts>  replace crontab from file\n" \
+       "\t-    <opts>  replace crontab from stdin\n" \
+       "\t-u user      specify user\n" \
+       "\t-l [user]    list crontab for user\n" \
+       "\t-e [user]    edit crontab for user\n" \
+       "\t-d [user]    delete crontab for user\n" \
+       "\t-c dir       specify crontab directory"
+
+
 #define cut_trivial_usage \
        "[OPTION]... [FILE]..."
 #define cut_full_usage \
 #define dc_full_usage \
        "This is a Tiny RPN calculator that understands the\n" \
        "following operations: +, -, /, *, and, or, not, eor.\n" \
-       "i.e., 'dc 2 2 add' -> 4, and 'dc 8 8 \\* 2 2 + /' -> 16"
+       "i.e., 'dc 2 2 add' -> 4, and 'dc 8 8 \\* 2 2 + /' -> 16" \
+       "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.\n"
+
 #define dc_example_usage \
        "$ dc 2 2 +\n" \
        "4\n" \
 #define dumpkmap_example_usage \
        "$ dumpkmap > keymap\n"
 
+#define dumpleases_trivial_usage \
+       "[-r|-a] [-f LEASEFILE]"
+#define dumpleases_full_usage \
+       "\t-f,\t--file=FILENAME\tLeases file to load\n" \
+       "\t-r,\t--remaining\tInterepret lease times as time remaing\n" \
+       "\t-a,\t--absolute\tInterepret lease times as expire time\n"
+
 #define dutmp_trivial_usage \
        "[FILE]"
 #define dutmp_full_usage \
 #define fdflush_full_usage \
        "Forces floppy disk drive to detect disk change"
 
+#define fdisk_trivial_usage \
+       "[-l] [-v] [-b SSZ] [-u] DISK"
+#define fdisk_full_usage \
+       "Change partition table\n" \
+       "Options:\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" \
+       "-v  Give fdisk version"
+
 #ifdef CONFIG_FEATURE_FIND_TYPE
   #define USAGE_FIND_TYPE(a) a
 #else
 #else
   #define USAGE_FIND_MTIME(a)
 #endif
+#ifdef CONFIG_FEATURE_FIND_NEWER
+  #define USAGE_FIND_NEWER(a) a
+#else
+  #define USAGE_FIND_NEWER(a)
+#endif
+#ifdef CONFIG_FEATURE_FIND_INUM
+  #define USAGE_FIND_INUM(a) a
+#else
+  #define USAGE_FIND_INUM(a)
+#endif
 
 #define find_trivial_usage \
        "[PATH...] [EXPRESSION]"
 ) USAGE_FIND_PERM( \
        "\n\t-perm PERMS\tPermissions match any of (+NNN); all of (-NNN);\n\t\t\tor exactly (NNN)" \
 ) USAGE_FIND_MTIME( \
-       "\n\t-mtime TIME\tModified time is greater than (+N); less than (-N);\n\t\t\tor exactly (N) days")
+       "\n\t-mtime TIME\tModified time is greater than (+N); less than (-N);\n\t\t\tor exactly (N) days" \
+) USAGE_FIND_NEWER( \
+       "\n\t-newer FILE\tModified time is more recent than FILE's" \
+) USAGE_FIND_INUM( \
+       "\n\t-inum N\t\tFile has inode number N")
 #define find_example_usage \
        "$ find / -name /etc/passwd\n" \
        "/etc/passwd\n"
        "\t-m\tActivates MINIX-like \"mode not cleared\" warnings\n" \
        "\t-f\tForce file system check."
 
+#define ftpget_trivial_usage \
+       "[options] remote-host local-directory remote-file"
+#define ftpget_full_usage \
+       "Retrieve a remote file via FTP.\n\n" \
+       "Options:\n" \
+       "\t-c, --continue         Continue a previous transfer\n" \
+       "\t-v, --verbose          Verbose\n" \
+       "\t-u, --username         Username to be used\n" \
+       "\t-p, --password         Password to be used\n" \
+       "\t-P, --port             Port number to be used\n" 
+
+#define ftpput_trivial_usage \
+       "[options] remote-host remote-directory local-file"
+#define ftpput_full_usage \
+       "Store a local file on a remote machine via FTP.\n\n" \
+       "Options:\n" \
+       "\t-v, --verbose          Verbose\n" \
+       "\t-u, --username         Username to be used\n" \
+       "\t-p, --password         Password to be used\n" \
+       "\t-P, --port             Port number to be used\n" 
+
 #define getopt_trivial_usage \
        "[OPTIONS]..."
 #define getopt_full_usage \
 #define hostname_example_usage \
        "$ hostname\n" \
        "sage \n"
-
+#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+  #define USAGE_HTTPD_BASIC_AUTH(a) a
+#else
+  #define USAGE_HTTPD_BASIC_AUTH(a)
+#endif
+#define httpd_trivial_usage \
+       "[-p <port>] [-d/-e <string>]" USAGE_HTTPD_BASIC_AUTH(" [-c <conf file>] [-r <realm>]")
+#define httpd_full_usage \
+       "Listens for incoming http server requests.\n"\
+       "Options:\n" \
+       "\t-p PORT\tServer port (default 80).\n" \
+       USAGE_HTTPD_BASIC_AUTH("\t-c FILE\tSpecifies configuration file.  (default httpd.conf)\n\t-r REALM\tAuthentication Realm for Basic Authentication\n") \
+       "\t-e STRING\tHtml encode STRING\n" \
+       "\t-d STRING\tURL decode STRING\n" 
 #define hwclock_trivial_usage \
        "[-r|--show] [-s|--hctosys] [-w|--systohc] [-l|--localtime] [-u|--utc]"
 #define hwclock_full_usage \
        USAGE_IFCONFIG_MII("\t[mem_start <NN>]  [io_addr <NN>]  [irq <NN>]\n") \
        "\t[up|down] ..."
 
+#define ifup_trivial_usage \
+       "<-ahinv> <ifaces...>"
+#define ifup_full_usage \
+       "Usage: ifup <options> <ifaces...>\n\n" \
+       "Options:\n" \
+       "\t-h\tthis help\n" \
+       "\t-a\tde/configure all interfaces automatically\n" \
+       "\t-i FILE\tuse FILE for interface definitions\n" \
+       "\t-n\tprint out what would happen, but don't do it\n" \
+       "\t\t\t(note that this option doesn't disable mappings)\n" \
+       "\t-v\tprint out what would happen before doing it\n" \
+       "\t-m\tdon't run any mappings\n" \
+       "\t-f\tforce de/configuration\n"
+
+#define ifdown_trivial_usage \
+       "<-ahinv> <ifaces...>"
+#define ifdown_full_usage \
+       "Usage: ifdown <options> <ifaces...>\n\n" \
+       "Options:\n" \
+       "\t-h\tthis help\n" \
+       "\t-a\tde/configure all interfaces automatically\n" \
+       "\t-i FILE\tuse FILE for interface definitions\n" \
+       "\t-n\tprint out what would happen, but don't do it\n" \
+       "\t\t(note that this option doesn't disable mappings)\n" \
+       "\t-v\tprint out what would happen before doing it\n" \
+       "\t-m\tdon't run any mappings\n" \
+       "\t-f\tforce de/configuration\n"
+       
 #define init_trivial_usage \
        ""
 #define init_full_usage \
 "\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 reverse order from how they appear in /etc/inittab.\n" \
+"              run in the order they appear in /etc/inittab.\n" \
 "\n" \
 "      <process>: \n" \
 "\n" \
 "      \n" \
 "      # /sbin/getty invocations for selected ttys\n" \
 "      #\n" \
-"      tty4::respawn:/sbin/getty 38400 tty5\n" \
-"      tty5::respawn:/sbin/getty 38400 tty6\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" \
 "      ::shutdown:/bin/umount -a -r\n" \
 "      ::shutdown:/sbin/swapoff -a\n"
 
+#ifdef CONFIG_FEATURE_INSMOD_LOAD_MAP
+  #define USAGE_INSMOD_MAP(a) a
+#else
+  #define USAGE_INSMOD_MAP(a)
+#endif
 #define insmod_trivial_usage \
        "[OPTION]... MODULE [symbol=value]..."
 #define insmod_full_usage \
        "\t-k\tMake module autoclean-able.\n" \
        "\t-v\tverbose output\n"  \
        "\t-L\tLock to prevent simultaneous loads of a module\n" \
-       "\t-x\tdo not export externs"
+       USAGE_INSMOD_MAP("\t-m\tOutput load map to stdout") \
+       "\t-x\tdo not export externs\n"
+
+#define ip_trivial_usage \
+       "[ OPTIONS ] { address | link | route | tunnel } { COMMAND | help }"
+#define ip_full_usage \
+       "ip [ OPTIONS ] OBJECT { COMMAND | help }\n" \
+       "where  OBJECT := { link | addr | route | tunnel }\n" \
+       "OPTIONS := { -f[amily] { inet | inet6 | link } | -o[neline] }\n"
+
+#define ipaddr_trivial_usage \
+       "{ {add|del} IFADDR dev STRING | {show|flush} [ dev STRING ] [ to PREFIX ] }"
+#define ipaddr_full_usage \
+       "ipaddr {add|del} 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 ]\n"
+
+#ifndef CONFIG_FEATURE_IPCALC_FANCY
+# define ipcalc_trivial_usage \
+       "[--broadcast] [--netmask] [--network] ipaddr <netmask>"
+
+# define ipcalc_full_usage \
+       "Calculate IP network settings from a IP address\n\n" \
+       "Options:\n" \
+       "\t-b\t--broadcast\tDisplay calculated broadcast address.\n" \
+       "\t-n\t--netmask\tDisplay default netmask for IP.\n" \
+       "\t-w\t--network\tDisplay calculated network address." 
+#else
+# define ipcalc_trivial_usage \
+       "[OPTION]... ipaddr <netmask>"
+
+# define ipcalc_full_usage \
+       "Calculate IP network settings from a IP address\n\n" \
+       "Options:\n" \
+       "\t-b\t--broadcast\tDisplay calculated broadcast address.\n" \
+       "\t-n\t--netmask\tDisplay default netmask for IP.\n" \
+       "\t-w\t--network\tDisplay calculated network address.\n" \
+       "\t-h\t--hostname\tDisplay first resolved host name.\n" \
+       "\t-s\t--silent\tDon't ever display error messages." 
+#endif
+
+#define ipcalc_notes_usage \
+       "ipcalc provides a simple way to calculate IP information for\n" \
+       "a host. The various options specify what information ipcalc\n" \
+       "should display on standard out. Multiple options may be\n" \
+       "specified.\n"
+
+#define iplink_trivial_usage \
+       "{ set DEVICE { up | down | arp { on | off } | show [ DEVICE ] }"
+#define iplink_full_usage \
+       "iplink set DEVICE { up | down | arp { on | off } |\n" \
+       "                     dynamic { on | off } |\n" \
+       "                     mtu MTU }\n" \
+       "iplink show [ DEVICE ]\n"
+
+#define iproute_trivial_usage \
+       "{ list | flush | { add | del | change | append | 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 ]\n"
+
+#define iptunnel_trivial_usage \
+       "{ add | change | del | show } [ NAME ] [ mode { ipip | gre | sit } ] [ 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 ]\n"
 
 #define kill_trivial_usage \
        "[-signal] process-id [process-id ...]"
        "$ killall apache\n" 
 
 #define klogd_trivial_usage \
-       "-n"
+       "[-c n] [-n]"
 #define klogd_full_usage \
        "Kernel logger.\n"\
        "Options:\n"\
+       "\t-c n\tSets the default log level of console messages to n.\n"\
        "\t-n\tRun as a foreground process."
 
 #define length_trivial_usage \
 #define mv_example_usage \
        "$ mv /tmp/foo /bin/bar\n" 
 
+#define nameif_trivial_usage \
+       "[-s] [-c FILE] [{IFNAME MACADDR}]"
+#define nameif_full_usage \
+               "Nameif renaming network interface while it in the down state.\n\n" \
+               "Options:\n" \
+               "\t-c FILE\t\tUse configuration file (default is /etc/mactab)\n" \
+               "\t-s\t\tUse syslog (LOCAL0 facility).\n" \
+               "\tIFNAME MACADDR\tnew_interface_name interface_mac_address\n" 
+#define nameif_example_usage \
+               "$ nameif -s dmz0 00:A0:C9:8C:F6:3F\n" \
+               " or\n" \
+               "$ nameif -c /etc/my_mactab_file\n" \
+
 #define nc_trivial_usage \
        "[OPTIONS] [IP] [port]" 
 #define nc_full_usage \
 #define readlink_full_usage \
        "Read a symbolic link."
 
+#define realpath_trivial_usage \
+       "pathname  ..."
+#define realpath_full_usage \
+       "return the canonicalized absolute pathnames of given arguments\n\n"
+       
 #define reboot_trivial_usage \
        ""
 #define reboot_full_usage \
 #define rmmod_full_usage \
        "Unloads the specified kernel modules from the kernel.\n\n" \
        "Options:\n" \
-       "\t-a\tTry to remove all unused kernel modules."
+       "\t-a\tRemove all unused modules (recursively)"
 #define rmmod_example_usage \
        "$ rmmod tulip\n"
 
        "\t-n\tDont resolve names.\n" \
        "\t-e\tDisplay other/more information"
 
+#define rpm_trivial_usage \
+       "-i -q[ildc]p package.rpm"
+#define rpm_full_usage \
+       "Manipulates RPM packages" \
+       "Options:" \
+       "\t-i Install package" \
+       "\t-q Query package" \
+       "\t\t-p Query uninstalled package" \
+       "\t\t-i Show information" \
+       "\t\t-l List contents" \
+       "\t\t-d List documents" \
+       "\t\t-c List config files"
+
 #define rpm2cpio_trivial_usage \
        "package.rpm"
 #define rpm2cpio_full_usage \
        "Options:\n" \
        "-S\t\t\tstart\n"\
        "-K\t\t\tstop\n"\
+       "-b\t\t\tforce process into background (daemonize)\n"\
        "-x <executable>\t\tprogram to start/check if it is running\n"\
-       "-p <pid-file>\t\tpid file to check\n"\
        "-u <username>|<uid>\tstop this user's processes\n"\
        "-n <process-name>\tstop processes with this name\n"\
        "-s <signal>\t\tsignal to send (default 15)\n"\
        "-a <pathname>\t\tprogram to start (default <executable>)\n"
 
+#define strings_trivial_usage \
+    "[-afo] [-n length] [file ... ]"
+#define strings_full_usage \
+    "Display printable strings in a binary file." \
+    "\n\nOptions:" \
+    "\n\t-f\tPrecede each string with the name of the file where it was found." \
+    "\n\t-n N\tSpecifies that at least N characters forms a sequence (default 4)" \
+    "\n\t-o\tEach string is preceded by its decimal offset in the file."
+
 #define stty_trivial_usage \
        "[-a|g] [-F DEVICE] [SETTING]..."
 #define stty_full_usage \
 #else
   #define USAGE_TAR_EXCLUDE(a)
 #endif
+#ifdef CONFIG_FEATURE_TAR_GZIP
+  #define USAGE_TAR_GZIP(a) a
+#else
+  #define USAGE_TAR_GZIP(a)
+#endif
+#ifdef CONFIG_FEATURE_TAR_BZIP2
+  #define USAGE_TAR_BZIP2(a) a
+#else
+  #define USAGE_TAR_BZIP2(a)
+#endif
+
 #define tar_trivial_usage \
-       "-[" USAGE_TAR_CREATE("c") "xtvO] " \
+       "-[" USAGE_TAR_CREATE("c") USAGE_TAR_GZIP("z") USAGE_TAR_BZIP2("j") "xtvO] " \
        USAGE_TAR_EXCLUDE("[--exclude FILE] [-X FILE]") \
        "[-f TARFILE] [-C DIR] [FILE(s)] ..."
 #define tar_full_usage \
        USAGE_TAR_CREATE("\tc\t\tcreate\n") \
        "\tx\t\textract\n" \
        "\tt\t\tlist\n" \
+       "\nArchive format selection:\n" \
+       USAGE_TAR_GZIP("\tz\t\tFilter the archive through gzip\n") \
+       USAGE_TAR_BZIP2("\tj\t\tFilter the archive through bzip2\n") \
        "\nFile selection:\n" \
        "\tf\t\tname of TARFILE or \"-\" for stdin\n" \
        "\tO\t\textract to stdout\n" \
        "Telnet is used to establish interactive communication with another\n"\
        "computer over a network using the TELNET protocol."
 
+#define telnetd_trivial_usage \
+       "[OPTION]"
+#define telnetd_full_usage \
+       "Telnetd listens for incoming TELNET connections on PORT.\n"\
+       "Options:\n" \
+       "\t-p PORT\tlisten for connections on PORT (default 23)\n"\
+       "\t-l LOGIN\texec LOGIN on connect (default /bin/sh)"
+
 #define test_trivial_usage \
        "EXPRESSION\n  or   [ EXPRESSION ]"
 #define test_full_usage \
        "/dev/tty2\n"
 
 #define udhcpc_trivial_usage \
-       "[-fqv] [-c CLIENTID] [-H HOSTNAME] [-i INTERFACE]\n[-p file] [-r IP] [-s script]"
+       "[-fbnqv] [-c CLIENTID] [-H HOSTNAME] [-i INTERFACE]\n[-p pidfile] [-r IP] [-s script]"
 #define udhcpc_full_usage \
-       "\tUsage: udhcpcd [OPTIONS]\n" \
        "\t-c,\t--clientid=CLIENTID\tClient identifier\n" \
        "\t-H,\t--hostname=HOSTNAME\tClient hostname\n" \
+       "\t-h,\t                   \tAlias for -H\n" \
        "\t-f,\t--foreground\tDo not fork after getting lease\n" \
+       "\t-b,\t--background\tFork to background if lease cannot be immediately negotiated.\n" \
        "\t-i,\t--interface=INTERFACE\tInterface to use (default: eth0)\n" \
        "\t-n,\t--now\tExit with failure if lease cannot be immediately negotiated.\n" \
        "\t-p,\t--pidfile=file\tStore process ID of daemon in file\n" \
        "\t-s,\t--script=file\tRun file at dhcp events (default: /usr/share/udhcpc/default.script)\n" \
        "\t-v,\t--version\tDisplay version"
 
+#define udhcpd_trivial_usage \
+       "[configfile]\n" \
+
+#define udhcpd_full_usage \
+       ""
+
 #ifdef CONFIG_FEATURE_MOUNT_FORCE
   #define USAGE_MOUNT_FORCE(a) a
 #else
        "$ uname -a\n" \
        "Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown\n" 
 
+#define uncompress_trivial_usage \
+       "[-c] [-f] [ name ... ]"
+#define uncompress_full_usage \
+       "Uncompress .Z file[s]\n" \
+       "Options:\n" \
+       "\t-c\textract to stdout\n" \
+       "\t-f\tforce overwrite an existing file\n"
+       
 #define uniq_trivial_usage \
        "[OPTION]... [INPUT [OUTPUT]]"
 #define uniq_full_usage \
 #define which_example_usage \
        "$ which login\n" \
        "/bin/login\n"
+
 #define who_trivial_usage \
         " "
 #define who_full_usage \
        "Prints the user name associated with the current effective user id."
 
 #define xargs_trivial_usage \
-       "[COMMAND] [ARGS...]"
+       "[COMMAND] [-prt] [ARGS...]"
 #define xargs_full_usage \
-       "Executes COMMAND on every item given by standard input."
+       "Executes COMMAND on every item given by standard input.\n\n" \
+       "Options:\n" \
+       "\t-p\tPrompt the user about whether to run each command\n" \
+       "\t-r\tDo not run command for empty readed lines\n" \
+       "\t-t\tPrint the command line on stderr before executing it."
 #define xargs_example_usage \
        "$ ls | xargs gzip\n" \
        "$ find . -name '*.c' -print | xargs rm\n"