Apply patch from Ghozlane Toumi to add -inum support to find.
[oweals/busybox.git] / include / usage.h
index 9ecdd9f24d27b71189ba69c77b8fd0686b812c13..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 \
+       "Options:\n" \
+       "\t-v var=val\tassign value 'val' to variable 'var'\n" \
+       "\t-F sep\t\tuse 'sep' as field separator\n" \
+       "\t-f progname\tread program source from file 'progname'\n"
+
 #define basename_trivial_usage \
        "FILE [SUFFIX]"
 #define basename_full_usage \
        "bar"
 
 #define bunzip2_trivial_usage \
-       "[-c] FILE"
+       "[OPTION]... [FILE]"
 #define bunzip2_full_usage \
-       "Uncompress FILE to current directory, stripping its .bz2 extension.\n"\
-       " -c output to stdout\n"\
-       " -k is assumed" 
+       "Uncompress FILE (or standard input if FILE is '-' or omitted).\n\n" \
+       "Options:\n" \
+       "\t-c\tWrite output to standard output\n" \
+       "\t-f\tForce"
 
 #define bzcat_trivial_usage \
        "FILE"
        "\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" \
-       "$ dc 8 8 \* 2 2 + /\n" \
+       "$ dc 8 8 * 2 2 + /\n" \
        "16\n" \
        "$ dc 0 1 and\n" \
        "0\n" \
 
 #define dd_trivial_usage \
        "[if=FILE] [of=FILE] [bs=N] [count=N] [skip=N]\n" \
-       "\t  [seek=N] [conv=notrunc|sync]"
+       "\t  [seek=N] [conv=notrunc|noerror|sync]"
 #define dd_full_usage \
        "Copy a file, converting and formatting according to options\n\n" \
        "\tif=FILE\t\tread from FILE instead of stdin\n" \
        "\tskip=N\t\tskip N input blocks\n" \
        "\tseek=N\t\tskip N output blocks\n" \
        "\tconv=notrunc\tdon't truncate output file\n" \
+       "\tconv=noerror\tcontinue after read errors\n" \
        "\tconv=sync\tpad blocks with zeros\n" \
        "\n" \
        "Numbers may be suffixed by c (x1), w (x2), b (x512), kD (x1000), k (x1024),\n" \
        "\t-d\toutput will be in DOS format"
 
 #define dpkg_trivial_usage \
-       "-i package_file\n"
+       "-i package_file\n" \
        "[-CPru] package_name"
 #define dpkg_full_usage \
        "\t-i\tInstall the package\n" \
        "$ dpkg-deb -X ./busybox_0.48-1_i386.deb /tmp\n"
 
 #define du_trivial_usage \
-       "[-ls" USAGE_HUMAN_READABLE("hm") USAGE_NOT_HUMAN_READABLE("") "k] [FILE]..."
+       "[-lsx" USAGE_HUMAN_READABLE("hm") USAGE_NOT_HUMAN_READABLE("") "k] [FILE]..."
 #define du_full_usage \
        "Summarizes disk space used for each FILE and/or directory.\n" \
        "Disk space is printed in units of 1024 bytes.\n\n" \
        USAGE_HUMAN_READABLE( \
        "\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \
        "\t-m\tprint sizes in megabytes\n" \
+       "\t-x\tskip directories on different filesystems\n" \
        "\t-k\tprint sizes in kilobytes(default)") USAGE_NOT_HUMAN_READABLE( \
        "\n\t-k\tprint sizes in kilobytes(compatibility)")
 #define du_example_usage \
 #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 \
         "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" \
+        "   -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" \
+        "       *)  echo \"Option c, argument `$2'\" ; shift 2 ;;\n" \
         "     esac ;;\n" \
         "   --) shift ; break ;;\n" \
         "   *) echo \"Internal error!\" ; exit 1 ;;\n" \
        "-rw-rw-r--    1 andersen andersen  1761280 Apr 14 17:47 /tmp/BusyBox-0.43.tar\n"
 
 #define gzip_trivial_usage \
-       "[OPTION]... FILE"
+       "[OPTION]... [FILE]..."
 #define gzip_full_usage \
-       "Compress FILE with maximum compression.\n" \
-       "When FILE is '-', reads standard input.  Implies -c.\n\n" \
+       "Compress FILE(s) with maximum compression.\n" \
+       "When FILE is '-' or unspecified, reads standard input.  Implies -c.\n\n" \
        "Options:\n" \
        "\t-c\tWrite output to standard output instead of FILE.gz\n" \
        "\t-d\tdecompress"
 #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 \
+       "Query and set the hardware clock (RTC)\n\n" \
+       "Options:\n" \
+       "\t-r\tread hardware clock and print result\n" \
+       "\t-s\tset the system time from the hardware clock\n" \
+       "\t-w\tset the hardware clock to the current system time\n" \
+       "\t-u\tthe hardware clock is kept in coordinated universal time\n" \
+       "\t-l\tthe hardware clock is kept in local time"
 
 #define id_trivial_usage \
        "[OPTIONS]... [USERNAME]"
 #else
   #define USAGE_IFCONFIG_OPT_A(a)
 #endif
+#ifdef CONFIG_FEATURE_IPV6
+  #define USAGE_IPV6(a) a
+#else
+  #define USAGE_IPV6(a)
+#endif
 
 #define ifconfig_trivial_usage \
        USAGE_IFCONFIG_OPT_A("[-a]") " <interface> [<address>]"
 #define ifconfig_full_usage \
        "configure a network interface\n\n" \
        "Options:\n" \
+       USAGE_IPV6("[add <address>[/<prefixlen>]]\n") \
+       USAGE_IPV6("[del <address>[/<prefixlen>]]\n") \
        "\t[[-]broadcast [<address>]]  [[-]pointopoint [<address>]]\n" \
        "\t[netmask <address>]  [dstaddr <address>]\n" \
        USAGE_SIOCSKEEPALIVE("\t[outfill <NN>] [keepalive <NN>]\n") \
        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 logger_example_usage \
        "$ logger "hello"\n" 
 
+#define login_trivial_usage \
+       "[OPTION]... [username] [ENV=VAR ...]"
+#define login_full_usage \
+       "Begin a new session on the system\n\n" \
+       "Options:\n" \
+       "\t-f\tDo not authenticate (user already authenticated)\n" \
+       "\t-h\tName of the remote host for this login.\n" \
+       "\t-p\tPreserve environment."
+
 #define logname_trivial_usage \
        ""
 #define logname_full_usage \
 #define logread_full_usage \
         "Shows the messages from syslogd (using circular buffer)."
 
+#define losetup_trivial_usage \
+       "[OPTION]... LOOPDEVICE FILE\n" \
+       "or: losetup [OPTION]... -d LOOPDEVICE"
+#define losetup_full_usage \
+       "Associate LOOPDEVICE with FILE.\n\n" \
+       "Options:\n" \
+       "\t-d\t\tDisassociate LOOPDEVICE.\n" \
+       "\t-o OFFSET\tStart OFFSET bytes into FILE.\n"
+
 #ifdef CONFIG_FEATURE_LS_TIMESTAMPS
   #define USAGE_LS_TIMESTAMPS(a) a
 #else
        "busybox: OK\n" \
        "^D\n"
 
+#define mesg_trivial_usage \
+       "mesg [y|n]"
+#define mesg_full_usage \
+       "mesg [Y|N], controls write access to your terminal\n" \
+       "\ty\tAllow write access to your terminal.\n" \
+       "\tn\tDisallow write access to your terminal.\n"
+
 #define mkdir_trivial_usage \
        "[OPTION] DIRECTORY..."
 #define mkdir_full_usage \
 #define modprobe_trivial_usage \
        "[FILE ...]"
 #define modprobe_full_usage \
-       "Used for hight level module loading and unloading."
+       "Used for high level module loading and unloading."
 #define modprobe_example_usage \
        "$ modprobe cdrom\n" 
 
 #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 \
-       "[IP] [port]" 
+       "[OPTIONS] [IP] [port]" 
 #define nc_full_usage \
-       "Netcat opens a pipe to IP:port"
+       "Netcat opens a pipe to IP:port\n\n" \
+       "Options:\n" \
+       "\t-l\t\tlisten mode, for inbound connects\n" \
+       "\t-p PORT\t\tlocal port number\n" \
+       "\t-i SECS\t\tdelay interval for lines sent\n" \
+       "\t-e PROG\t\tprogram to exec after connect (dangerous!)"
 #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" \
        "221 foobar closing connection\n" 
 
 #define netstat_trivial_usage \
-       "[-lantuwx]"
+       "[-laenrtuwx]"
 #define netstat_full_usage \
        "-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" \
+       "-r display routing table\n" \
        "-t tcp sockets\n" \
        "-u udp sockets\n" \
        "-w raw sockets\n" \
        "Write an unambiguous representation, octal bytes by default, of FILE\n"\
        "to standard output.  With no FILE, or when FILE is -, read standard input."
 
+#define openvt_trivial_usage \
+       "<vtnum> <COMMAND> [ARGS...]"
+#define openvt_full_usage \
+       "Start a command on a new virtual terminal"
+#define openvt_example_usage \
+       "openvt 2 /bin/ash\n"
+
+#ifdef CONFIG_FEATURE_SHA1_PASSWORDS
+  #define PASSWORD_ALG_TYPES(a) a
+#else   
+  #define PASSWORD_ALG_TYPES(a)
+#endif
+#define passwd_trivial_usage \
+       "[OPTION] [name]"
+#define passwd_full_usage \
+       "Change a user password. If no name is specified,\n" \
+       "changes the password for the current user.\n" \
+       "Options:\n" \
+       "\t-a\tDefine which algorithm shall be used for the password.\n" \
+       "\t\t\t(Choices: des, md5" \
+       PASSWORD_ALG_TYPES(", sha1") \
+       ")\n\t-d\tDelete the password for the specified user account.\n" \
+       "\t-l\tLocks (disables) the specified user account.\n" \
+       "\t-u\tUnlocks (re-enables) the specified user account."
+
 #define pidof_trivial_usage \
        "process-name [process-name ...]"
 #define pidof_full_usage \
        "1 packets transmitted, 1 packets received, 0% packet loss\n" \
        "round-trip min/avg/max = 20.1/20.1/20.1 ms\n" 
 
+#ifndef CONFIG_FEATURE_FANCY_PING6
+#define ping6_trivial_usage "host"
+#define ping6_full_usage    "Send ICMP ECHO_REQUEST packets to network hosts"
+#else
+#define ping6_trivial_usage \
+       "[OPTION]... host"
+#define ping6_full_usage \
+       "Send ICMP ECHO_REQUEST packets to network hosts.\n\n" \
+       "Options:\n" \
+       "\t-c COUNT\tSend only COUNT pings.\n" \
+       "\t-s SIZE\t\tSend SIZE data bytes in packets (default=56).\n" \
+       "\t-q\t\tQuiet mode, only displays output at start\n" \
+       "\t\t\tand when finished."
+#endif
+#define ping6_example_usage \
+       "$ ping6 ip6-localhost\n" \
+       "PING ip6-localhost (::1): 56 data bytes\n" \
+       "64 bytes from ::1: icmp6_seq=0 ttl=64 time=20.1 ms\n" \
+       "\n" \
+       "--- ip6-localhost ping statistics ---\n" \
+       "1 packets transmitted, 1 packets received, 0% packet loss\n" \
+       "round-trip min/avg/max = 20.1/20.1/20.1 ms\n" 
+
 #define pivot_root_trivial_usage \
        "NEW_ROOT PUT_OLD"
 #define pivot_root_full_usage \
 #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"
 
 #define route_full_usage \
        "Edit the kernel's routing tables.\n\n" \
        "Options:\n" \
-       "\t-n\tDont resolve names."
+       "\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"
        "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 \
        "\n\t-g\t\tprint in stty-readable form" \
        "\n\t[SETTING]\tsee manpage"
 
+#define su_trivial_usage \
+       "[OPTION]... [-] [username]"
+#define su_full_usage \
+       "Change user id or become root.\n" \
+       "Options:\n" \
+       "\t-p\tPreserve environment"
+
+#define sulogin_trivial_usage \
+       "[OPTION]... [tty-device]"
+#define sulogin_full_usage \
+       "Single user login\n" \
+       "Options:\n" \
+       "\t-f\tDo not authenticate (user already authenticated)\n" \
+       "\t-h\tName of the remote host for this login.\n" \
+       "\t-p\tPreserve environment."
+
 #define swapoff_trivial_usage \
        "[OPTION] [DEVICE]"
 #define swapoff_full_usage \
 #else
   #define USAGE_REMOTE_LOG(a)
 #endif
+#ifdef CONFIG_FEATURE_IPC_SYSLOG
+  #define USAGE_IPC_LOG(a) a
+#else
+  #define USAGE_IPC_LOG(a)
+#endif
+
 #define syslogd_trivial_usage \
        "[OPTION]..."
 #define syslogd_full_usage \
        "\t-O FILE\t\tUse an alternate log file (default=/var/log/messages)" \
        USAGE_REMOTE_LOG( \
        "\n\t-R HOST[:PORT]\tLog to IP or hostname on PORT (default PORT=514/UDP)\n" \
-       "\t-L\t\tLog locally and via network logging (default is network only)")
+       "\t-L\t\tLog locally and via network logging (default is network only)") \
+       USAGE_IPC_LOG( \
+       "\n\t-C\t\tLog to a circular buffer (read the buffer using logread)")
 #define syslogd_example_usage \
        "$ syslogd -R masterlog:514\n" \
        "$ syslogd -R 192.168.1.1:601\n"
 #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 \
        "Options:\n" \
        "\t-v\tDisplays verbose resource usage information."
 
+#define top_trivial_usage \
+       "[-d <seconds>]"
+#define top_full_usage \
+       "top provides an view of processor activity in real time.\n" \
+       "This utility reads the status for all processes in /proc each <seconds>\n" \
+       "and shows the status for however many processes will fit on the screen.\n" \
+       "This utility will not show processes that are started after program startup,\n" \
+       "but it will show the EXIT status for and PIDs that exit while it is running."
+
 #define touch_trivial_usage \
        "[-c] FILE [FILE ...]"
 #define touch_full_usage \
        "$ tty\n" \
        "/dev/tty2\n"
 
+#define udhcpc_trivial_usage \
+       "[-fbnqv] [-c CLIENTID] [-H HOSTNAME] [-i INTERFACE]\n[-p pidfile] [-r IP] [-s script]"
+#define udhcpc_full_usage \
+       "\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-q,\t--quit\tQuit after obtaining lease\n" \
+       "\t-r,\t--request=IP\tIP address to request (default: none)\n" \
+       "\t-s,\t--script=file\tRun file at dhcp events (default: /usr/share/udhcpc/default.script)\n" \
+       "\t-v,\t--version\tDisplay version"
+
+#define udhcpd_trivial_usage \
+       "[configfile]\n" \
+
+#define udhcpd_full_usage \
+       ""
+
 #ifdef CONFIG_FEATURE_MOUNT_FORCE
   #define USAGE_MOUNT_FORCE(a) a
 #else
        "$ 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 \
        "Options:\n" \
        "\t-R\tRead-only- do not write to the file." 
 
+#define vlock_trivial_usage \
+       "[OPTIONS]"
+#define vlock_full_usage \
+       "Lock a virtual terminal.  A password is required to unlock\n" \
+       "Options:\n" \
+       "\t-a\tLock all VTs"
+
+#define watch_trivial_usage \
+       "[-n <seconds>] COMMAND..."
+#define watch_full_usage \
+       "Executes a program periodically.\n" \
+       "Options:\n" \
+       "\t-n\tLoop period in seconds - default is 2." 
+#define watch_example_usage \
+       "$ watch date\n" \
+       "Mon Dec 17 10:31:40 GMT 2000\n" \
+       "Mon Dec 17 10:31:42 GMT 2000\n" \
+       "Mon Dec 17 10:31:44 GMT 2000" 
+
 #define watchdog_trivial_usage \
        "DEV"
 #define watchdog_full_usage \
        "     31      46    1365 /etc/passwd\n" 
 
 #define wget_trivial_usage \
-       "[-c|--continue] [-q|--quiet] [-O|--output-document file]\n\t[--header 'header: value'] [-P DIR] url"
+       "[-c|--continue] [-q|--quiet] [-O|--output-document file]\n\t[--header 'header: value'] [-Y|--proxy on/off] [-P DIR] url"
 #define wget_full_usage \
        "wget retrieves files via HTTP or FTP\n\n" \
        "Options:\n" \
        "\t-c\tcontinue retrieval of aborted transfers\n" \
        "\t-q\tquiet mode - do not print\n" \
        "\t-P\tSet directory prefix to DIR\n" \
-       "\t-O\tsave to filename ('-' for stdout)"
+       "\t-O\tsave to filename ('-' for stdout)\n" \
+       "\t-Y\tuse proxy ('on' or 'off')"
 
 #define which_trivial_usage \
        "[COMMAND ...]"
        "$ which login\n" \
        "/bin/login\n"
 
+#define who_trivial_usage \
+        " "
+#define who_full_usage \
+        "Prints the current user names and related information"
+
 #define whoami_trivial_usage \
        ""
 #define whoami_full_usage \
        "Prints the user name associated with the current effective user id."
 
 #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"