"I'll think about it" != "apply it now". It means I need to think about it.
[oweals/busybox.git] / include / usage.h
index 9d890930ffd8317e0c5b03caa472b9fcebf35e51..6ef7f1ecfbba9060a775d5e2151d18b220a1aa1a 100644 (file)
@@ -1,3 +1,4 @@
+/* vi: set sw=4 ts=4: */
 #ifndef __BB_USAGE_H__
 #define __BB_USAGE_H__
 
 #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 cp_trivial_usage \
        "[OPTION]... SOURCE DEST"
 #define cp_full_usage \
@@ -492,9 +499,9 @@ USE_FEATURE_DATE_ISOFMT( \
        "\t-s SIZE\t\tUse a buffer of size SIZE"
 
 #define dnsd_trivial_usage \
-        "[-c config] [-t seconds] [-p port] [-i iface-ip] [-d]"
+       "[-c config] [-t seconds] [-p port] [-i iface-ip] [-d]"
 #define dnsd_full_usage \
-        "Small and static DNS server daemon\n\n" \
+       "Small and static DNS server daemon\n\n" \
        "Options:\n" \
        "\t-c\t\tconfig filename\n" \
        "\t-t\t\tTTL in seconds\n" \
@@ -1425,15 +1432,15 @@ USE_FEATURE_DATE_ISOFMT( \
 #define ipcrm_trivial_usage \
        "[-[MQS] key] [-[mqs] id]"
 #define ipcrm_full_usage \
-       "The upper-case options MQS are used to remove a shared memory\n" \
-       "segment by an shmkey value. The lower-case options mqs are used\n" \
+       "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" \
-       "\t-m | -M\tRemove the memory segment after the last detach\n" \
-       "\t-q | -Q\tRemove the message queue\n" \
-       "\t-s | -S\tRemove the semaphore"
+       "\t-[mM]\tRemove the memory segment after the last detach\n" \
+       "\t-[qQ]\tRemove the message queue\n" \
+       "\t-[sS]\tRemove the semaphore"
 
 #define ipcs_trivial_usage \
-       "[[-smq] -i shmid] | [[-asmq] [-tclup]]"
+       "[[-smq] -i shmid] | [[-asmq] [-tcplu]]"
 #define ipcs_full_usage \
        "\t-i\tspecify a specific resource id\n" \
        "Resource specification:\n" \
@@ -1443,10 +1450,10 @@ USE_FEATURE_DATE_ISOFMT( \
        "\t-a\tall (default)\n" \
        "Output format:\n" \
        "\t-t\ttime\n" \
+       "\t-c\tcreator\n" \
        "\t-p\tpid\n" \
-       "\t-s\tcreator\n" \
-       "\t-a\tlimits\n" \
-       "\t-i\tsummary"
+       "\t-l\tlimits\n" \
+       "\t-u\tsummary"
 
 #define iplink_trivial_usage \
        "{ set DEVICE { up | down | arp { on | off } | show [ DEVICE ] }"
@@ -1782,7 +1789,7 @@ USE_FEATURE_DATE_ISOFMT( \
        "\t-c\tcheck MD5 sums against given list\n" \
        "\nThe following two options are useful only when verifying checksums:\n" \
        "\t-s\tdon't output anything, status code shows success\n" \
-       "\t-w\twarn about improperly formated MD5 checksum lines")
+       "\t-w\twarn about improperly formatted MD5 checksum lines")
 #define md5sum_example_usage \
        "$ md5sum < busybox\n" \
        "6fd11e98b98a58f64ff3398d7b324003\n" \
@@ -2005,25 +2012,15 @@ USE_FEATURE_MDEV_CONFIG( \
 #define more_example_usage \
        "$ dmesg | more\n"
 
-#ifdef CONFIG_FEATURE_MOUNT_LOOP
-#  define USAGE_MOUNT_LOOP(a) a
-#else
-#  define USAGE_MOUNT_LOOP(a)
-#endif
-#ifdef CONFIG_FEATURE_MTAB_SUPPORT
-#  define USAGE_MTAB(a) a
-#else
-#  define USAGE_MTAB(a)
-#endif
 #define mount_trivial_usage \
        "[flags] DEVICE NODE [-o options,more-options]"
 #define mount_full_usage \
        "Mount a filesystem.  Filesystem autodetection requires /proc be mounted.\n\n" \
        "Flags:\n"  \
        "\t-a:\t\tMount all filesystems in fstab\n" \
-       USAGE_MTAB( \
-       "\t-f:\t\t\"Fake\" Add entry to mount table but don't mount it\n" \
-       "\t-n:\t\tDon't write a mount table entry\n" \
+       USE_FEATURE_MTAB_SUPPORT( \
+               "\t-f:\t\t\"Fake\" Add entry to mount table but don't mount it\n" \
+               "\t-n:\t\tDon't write a mount table entry\n" \
        ) \
        "\t-o option:\tOne of many filesystem options, listed below\n" \
        "\t-r:\t\tMount the filesystem read-only\n" \
@@ -2031,18 +2028,25 @@ USE_FEATURE_MDEV_CONFIG( \
        "\t-w:\t\tMount for reading and writing (default)\n" \
        "\n" \
        "Options for use with the \"-o\" flag:\n" \
-       "\tasync/sync:\tWrites are asynchronous / synchronous\n" \
-       "\tatime/noatime:\tEnable / disable updates to inode access times\n" \
-       "\tdev/nodev:\tAllow use of special device files / disallow them\n" \
-       "\texec/noexec:\tAllow use of executable files / disallow them\n" \
-       USAGE_MOUNT_LOOP( \
-       "\tloop:\t\t Ignored (loop devices are autodetected)\n" \
+       USE_FEATURE_MOUNT_LOOP( \
+               "\tloop:\t\tIgnored (loop devices are autodetected)\n" \
+       ) \
+       USE_FEATURE_MOUNT_FLAGS( \
+               "\t[a]sync:\tWrites are asynchronous / synchronous\n" \
+               "\t[no]atime:\tDisable / enable updates to inode access times\n" \
+               "\t[no]diratime:\tDisable / enable atime updates to directories\n" \
+               "\t[no]dev:\tAllow use of special device files / disallow them\n" \
+               "\t[no]exec:\tAllow use of executable files / disallow them\n" \
+               "\t[no]suid:\tAllow set-user-id-root programs / disallow them\n" \
+               "\t[r]shared:\tConvert [recursively] to a shared subtree.\n" \
+               "\t[r]slave:\tConvert [recursively] to a slave subtree.\n" \
+               "\t[r]private:\tConvert [recursively] to a private subtree\n" \
+               "\t[un]bindable:\tMake mount point [un]able to be bind mounted.\n" \
+               "\tbind:\t\tBind a directory to an additional location\n" \
+               "\tmove:\t\tRelocate an existing mount point.\n" \
        ) \
-       "\tsuid/nosuid:\tAllow set-user-id-root programs / disallow them\n" \
        "\tremount:\tRe-mount a mounted filesystem, changing its flags\n" \
        "\tro/rw:\t\tMount for read-only / read-write\n" \
-       "\tbind:\t\tBind a directory to an additional location\n" \
-       "\tmove:\t\tRelocate an existing mount point.\n" \
        "\nThere are EVEN MORE flags that are specific to each filesystem\n" \
        "You'll have to see the written documentation for those filesystems"
 #define mount_example_usage \
@@ -2054,7 +2058,7 @@ USE_FEATURE_MDEV_CONFIG( \
        "$ 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." 
+       "Returns 0 for success, number of failed mounts for -a, or errno for one mount."
 
 #define mountpoint_trivial_usage \
        "[-q] <[-d] DIR | -x DEVICE>"
@@ -2094,7 +2098,7 @@ USE_FEATURE_MDEV_CONFIG( \
 #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" \
+       "Nameif renames 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" \
@@ -2104,23 +2108,41 @@ USE_FEATURE_MDEV_CONFIG( \
        " or\n" \
        "$ nameif -c /etc/my_mactab_file\n" \
 
-#ifdef CONFIG_NC_GAPING_SECURITY_HOLE
-#  define USAGE_NC_EXEC(a) a
+#if ENABLE_NC_SERVER || ENABLE_NC_EXTRA
+#define NC_BR1 "["
+#define NC_BR2 "]"
 #else
-#  define USAGE_NC_EXEC(a)
+#define NC_BR1
+#define NC_BR2
 #endif
+
 #define nc_trivial_usage \
-       "[OPTIONS] [IP] [port]"
+       "[" \
+       NC_BR1 USE_NC_SERVER("-lp")USE_NC_EXTRA("iwf") NC_BR2 \
+       " ["USE_NC_EXTRA("FILENAME|")"{IPADDR PORTNUM}]"USE_NC_EXTRA(" [-e COMMAND]")
 #define nc_full_usage \
-       "Netcat opens a pipe to IP:port\n\n" \
-       "Options:\n" \
-       "\t-l\t\tlisten mode, for inbound connects\n" \
-       "\t-p PORT\t\tlocal port number\n" \
-       "\t-i SECS\t\tdelay interval for lines sent\n" \
-       USAGE_NC_EXEC( \
-       "\t-e PROG\t\tprogram to exec after connect (dangerous!)\n" \
+       "Netcat opens a pipe, either to IP:port\n\n" \
+       "Options:" \
+       USE_NC_EXTRA( \
+               "\n\t-e\t\texec rest of command line after connect\n" \
+               "\t-i SECS\t\tdelay interval for lines sent\n" \
+               "\t-w SECS\t\ttimeout for connect\n" \
+               "\t-f filename\tuse file (ala /dev/ttyS0) instead of network" \
        ) \
-       "\t-w SECS\t\ttimeout for connects and final net reads"
+       USE_NC_SERVER( \
+               "\n\t-l\t\tlisten mode, for inbound connects\n" \
+               USE_NC_EXTRA("\t\t\t(use -l twice with -e for persistent server)\n") \
+               "\t-p PORT\t\tlocal 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" \
@@ -2256,6 +2278,7 @@ USE_FEATURE_MDEV_CONFIG( \
        "Options:\n" \
        "\t-c COUNT\tSend only COUNT pings\n" \
        "\t-s SIZE\t\tSend SIZE data bytes in packets (default=56)\n" \
+       "\t-I IPADDR\tUse IPADDR as source address\n" \
        "\t-q\t\tQuiet mode, only displays output at start\n" \
        "\t\t\tand when finished"
 #endif
@@ -2369,6 +2392,12 @@ USE_FEATURE_MDEV_CONFIG( \
        "\t-s\tSet the system date and time (default)\n" \
        "\t-p\tPrint the date and time"
 
+#define readahead_trivial_usage \
+       "[FILE]..."
+#define readahead_full_usage \
+       "Preloads FILE(s) in RAM cache so that subsequent reads for those" \
+       "files do not block on disk I/O."
+
 #ifdef CONFIG_FEATURE_READLINK_FOLLOW
 #define USAGE_READLINK_FOLLOW(a) a
 #else
@@ -2602,7 +2631,7 @@ USE_FEATURE_MDEV_CONFIG( \
        "\t-c\tcheck SHA1 sums against given list\n" \
        "\nThe following two options are useful only when verifying checksums:\n" \
        "\t-s\tdon't output anything, status code shows success\n" \
-       "\t-w\twarn about improperly formated SHA1 checksum lines")
+       "\t-w\twarn about improperly formatted SHA1 checksum lines")
 
 #ifdef CONFIG_FEATURE_FANCY_SLEEP
 #  define USAGE_FANCY_SLEEP(a) a
@@ -2685,7 +2714,7 @@ USE_FEATURE_MDEV_CONFIG( \
        "\n\t-b|--background\t\t\tforce process into background" \
        "\n\t-u|--user <username>|<uid>\tstop this user's processes" \
        "\n\t-x|--exec <executable>\t\tprogram to either start or check" \
-       "\n\t-m|--make-pidfile <filename>\tcreate the -p file and enter pid in it" \
+       "\n\t-m|--make-pidfile\tcreate the -p file and enter pid in it" \
        "\n\t-n|--name <process-name>\tstop processes with this name" \
        "\n\t-p|--pidfile <pid-file>\t\tsave or load pid using a pid-file" \
        "\n\t-q|--quiet\t\t\tbe quiet" \
@@ -2693,7 +2722,8 @@ USE_FEATURE_START_STOP_DAEMON_FANCY( \
        "\n\t-o|--oknodo\t\t\texit status 0 if nothing done" \
        "\n\t-v|--verbose\t\t\tbe verbose" \
 ) \
-       "\n\t-s|--signal <signal>\t\tsignal to send (default TERM)"
+       "\n\t-s|--signal <signal>\t\tsignal to send (default TERM)" \
+       "\n\t-U|--chuid <username>|<uid>\tstart process with this name"
 
 #ifdef CONFIG_FEATURE_STAT_FORMAT
 #  define USAGE_STAT_FORMAT(a) a
@@ -2787,9 +2817,7 @@ USE_FEATURE_START_STOP_DAEMON_FANCY( \
 #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"
+       "\t-t\tTimeout"
 
 #define sum_trivial_usage \
        "[rs] [files...]"
@@ -2967,23 +2995,6 @@ USE_FEATURE_START_STOP_DAEMON_FANCY( \
        "$ 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\n" \
-       "Options:\n" \
-       "\t-p\toperate 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 \
@@ -3211,21 +3222,16 @@ USE_FEATURE_START_STOP_DAEMON_FANCY( \
 #define udhcpd_full_usage \
        ""
 
-#ifdef CONFIG_FEATURE_MOUNT_FORCE
-#  define USAGE_MOUNT_FORCE(a) a
-#else
-#  define USAGE_MOUNT_FORCE(a)
-#endif
 #define umount_trivial_usage \
        "[flags] FILESYSTEM|DIRECTORY"
 #define umount_full_usage \
        "Unmount file systems\n" \
        "\nFlags:\n" "\t-a\tUnmount all file systems" \
-       USAGE_MTAB(" in /etc/mtab\n\t-n\tDon't erase /etc/mtab entries") \
+       USE_FEATURE_MTAB_SUPPORT(" in /etc/mtab\n\t-n\tDon't erase /etc/mtab entries") \
        "\n\t-r\tTry to remount devices as read-only if mount is busy" \
        "\n\t-l\tLazy umount (detach filesystem)" \
        "\n\t-f\tForce umount (i.e., unreachable NFS server)" \
-       USAGE_MOUNT_LOOP("\n\t-D\tDo not free loop device (if a loop device has been used)")
+       USE_FEATURE_MOUNT_LOOP("\n\t-D\tDo not free loop device (if a loop device has been used)")
 #define umount_example_usage \
        "$ umount /dev/hdc1 \n"
 
@@ -3395,7 +3401,8 @@ USE_FEATURE_START_STOP_DAEMON_FANCY( \
 
 #define wget_trivial_usage \
        "[-c|--continue] [-q|--quiet] [-O|--output-document file]\n" \
-       "\t\t[--header 'header: value'] [-Y|--proxy on/off] [-P DIR] url"
+       "\t\t[--header 'header: value'] [-Y|--proxy on/off] [-P DIR]\n" \
+       "\t\t[-U|--user-agent agent] url"
 #define wget_full_usage \
        "wget retrieves files via HTTP or FTP\n\n" \
        "Options:\n" \
@@ -3403,6 +3410,7 @@ USE_FEATURE_START_STOP_DAEMON_FANCY( \
        "\t-q\tquiet mode - do not print\n" \
        "\t-P\tSet directory prefix to DIR\n" \
        "\t-O\tsave to filename ('-' for stdout)\n" \
+       "\t-U\tadjust 'User-Agent' field\n" \
        "\t-Y\tuse proxy ('on' or 'off')"
 
 #define which_trivial_usage \