ls: trim help text
[oweals/busybox.git] / include / usage.h
index 41012afc1d577792583051bf6a95b38c49ad0c12..97f4f27be6ca6d44aa2c99bffafe8ee8f7ae6a6c 100644 (file)
 #define depmod_trivial_usage NOUSAGE_STR
 #define depmod_full_usage ""
 
+#define devmem_trivial_usage \
+       "ADDRESS [WIDTH [VALUE]]"
+
+#define devmem_full_usage "\n\n" \
+       "Read/write from physical address\n" \
+     "\n       ADDRESS Address to act upon" \
+     "\n       WIDTH   Width (8/16/...)" \
+     "\n       VALUE   Data to be written" \
+
 #define devfsd_trivial_usage \
        "mntpnt [-v]" USE_DEVFSD_FG_NP("[-fg][-np]")
 #define devfsd_full_usage "\n\n" \
      "\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...]"
+       "[-Pk" \
+       USE_FEATURE_HUMAN_READABLE("mh") \
+       USE_FEATURE_DF_FANCY("ai] [-B SIZE") \
+       "] [FILESYSTEM...]"
 #define df_full_usage "\n\n" \
        "Print filesystem usage statistics\n" \
-       DF_HAS_OPTIONS("\nOptions:") \
+     "\nOptions:" \
+     "\n       -P      POSIX output format" \
+     "\n       -k      1024-byte blocks (default)" \
        USE_FEATURE_HUMAN_READABLE( \
+     "\n       -m      1M-byte blocks" \
      "\n       -h      Human readable (e.g. 1K 243M 2G)" \
-     "\n       -m      1024*1024 blocks" \
-     "\n       -k      1024 blocks" \
        ) \
-       USE_FEATURE_DF_INODE( \
+       USE_FEATURE_DF_FANCY( \
+     "\n       -a      Show all filesystems" \
      "\n       -i      Inodes" \
-       )
+     "\n       -B SIZE Blocksize" \
+       ) \
+
 #define df_example_usage \
        "$ df\n" \
-       "Filesystem           1k-blocks      Used Available Use% Mounted on\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"
+       "Filesystem           1K-blocks      Used Available Use% Mounted on\n" \
+       "/dev/sda3              8690864   8553540    137324  98% /\n" \
+       "$ POSIXLY_CORRECT=sure df /dev/sda3\n" \
+       "Filesystem         512B-blocks      Used Available Use% Mounted on\n" \
+       "/dev/sda3             17381728  17107080    274648  98% /\n" \
+       "$ POSIXLY_CORRECT=yep df -P /dev/sda3\n" \
+       "Filesystem          512-blocks      Used Available Capacity Mounted on\n" \
+       "/dev/sda3             17381728  17107080    274648      98% /\n"
 
 #define dhcprelay_trivial_usage \
        "[client1,client2,...] [server_device]"
      "\n       -z              Delete messages on server" \
      "\n       prog            Run 'prog <message_file>' on message delivery" \
 
+#define blkid_trivial_usage \
+       ""
+#define blkid_full_usage "\n\n" \
+       "Print UUIDs of all filesystems."
+
 #define findfs_trivial_usage \
        "LABEL=label or UUID=uuid"
 #define findfs_full_usage "\n\n" \
 #define ftpget_full_usage "\n\n" \
        "Retrieve a remote file via FTP\n" \
      "\nOptions:" \
-       USE_GETOPT_LONG( \
+       USE_FEATURE_FTPGETPUT_LONG_OPTIONS( \
      "\n       -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( \
+       SKIP_FEATURE_FTPGETPUT_LONG_OPTIONS( \
      "\n       -c      Continue previous transfer" \
      "\n       -v      Verbose" \
      "\n       -u      Username" \
 #define ftpput_full_usage "\n\n" \
        "Store a local file on a remote machine via FTP\n" \
      "\nOptions:" \
-       USE_GETOPT_LONG( \
+       USE_FEATURE_FTPGETPUT_LONG_OPTIONS( \
      "\n       -v,--verbose    Verbose" \
      "\n       -u,--username   Username" \
      "\n       -p,--password   Password" \
      "\n       -P,--port       Port number" \
        ) \
-       SKIP_GETOPT_LONG( \
+       SKIP_FEATURE_FTPGETPUT_LONG_OPTIONS( \
      "\n       -v      Verbose" \
      "\n       -u      Username" \
      "\n       -p      Password" \
        "-rw-rw-r--    1 andersen andersen   554058 Apr 14 17:49 /tmp/busybox.tar.gz\n"
 
 #define halt_trivial_usage \
-       "[-d delay] [-n] [-f]"
+       "[-d delay] [-n] [-f]" USE_FEATURE_WTMP(" [-w]")
 #define halt_full_usage "\n\n" \
        "Halt the system\n" \
      "\nOptions:" \
      "\n       -d STRING       URL decode STRING" \
 
 #define hwclock_trivial_usage \
-       USE_GETOPT_LONG( \
+       USE_FEATURE_HWCLOCK_LONG_OPTIONS( \
        "[-r|--show] [-s|--hctosys] [-w|--systohc]" \
        " [-l|--localtime] [-u|--utc]" \
        " [-f FILE]" \
        ) \
-       SKIP_GETOPT_LONG( \
+       SKIP_FEATURE_HWCLOCK_LONG_OPTIONS( \
        "[-r] [-s] [-w] [-l] [-u] [-f FILE]" \
        )
 #define hwclock_full_usage "\n\n" \
        USE_SELINUX( \
      "\n       -Z      Print the security context" \
        ) \
-     "\n       -g      Print group ID" \
      "\n       -u      Print user ID" \
+     "\n       -g      Print group ID" \
+     "\n       -G      Print supplementary group IDs" \
      "\n       -n      Print name instead of a number" \
      "\n       -r      Print real user ID instead of effective ID" \
 
      "\n       -x      Do not export externs" \
        )
 
+/* -v, -b, -c are ignored */
 #define install_trivial_usage \
-       "[-cgmops] [sources] dest|directory"
+       "[-cdDsp] [-o USER] [-g GRP] [-m MODE] [source] dest|directory"
 #define install_full_usage "\n\n" \
        "Copy files and set attributes\n" \
      "\nOptions:" \
-     "\n       -c      Copy the file, default" \
+     "\n       -c      Just copy (default)" \
      "\n       -d      Create directories" \
-     "\n       -g      Set group ownership" \
-     "\n       -m      Set permissions" \
-     "\n       -o      Set ownership" \
+     "\n       -D      Create leading target directories" \
+     "\n       -s      Strip symbol table" \
      "\n       -p      Preserve date" \
-     "\n       -s      Strip symbol tables" \
+     "\n       -o USER Set ownership" \
+     "\n       -g GRP  Set group ownership" \
+     "\n       -m MODE Set permissions" \
        USE_SELINUX( \
-     "\n       -Z      Set security context of copy" \
+     "\n       -Z      Set security context" \
        )
 
 /* would need to make the " | " optional depending on more than one selected: */
        "                       [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]" \
+       "                       ROUTE := [TYPE] PREFIX [tos TOS] [proto RTPROTO]\n" \
+       "                               [metric METRIC]" \
 
 #define iprule_trivial_usage \
        "{[list | add | del] RULE}"
        "5\n"
 
 #define less_trivial_usage \
-       "[-EMNmh~?] [FILE...]"
+       "[-EMNmh~I?] [FILE...]"
 #define less_full_usage "\n\n" \
        "View a file or list of files. The position within files can be\n" \
        "changed, and files can be manipulated in various ways.\n" \
      "\n       -M,-m   Display a status line containing the line numbers" \
      "\n               and percentage through the file" \
      "\n       -N      Prefix line numbers to each line" \
+     "\n       -I      Ignore case in all searches" \
      "\n       -~      Suppress ~s displayed past the end of the file" \
 
 #define linux32_trivial_usage NOUSAGE_STR
 #define ls_full_usage "\n\n" \
        "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" \
+     "\n       -1      List in a single column" \
+     "\n       -A      Don't list . and .." \
+     "\n       -a      Don't hide entries starting with ." \
+     "\n       -C      List by columns" \
        USE_FEATURE_LS_TIMESTAMPS( \
-     "\n       -c      With -l: show ctime") \
+     "\n       -c      With -l: sort by 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") \
+     "\n       -e      List full date and 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       -i      List inode numbers" \
+     "\n       -l      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_RECURSIVE( \
      "\n       -R      List subdirectories recursively") \
        USE_FEATURE_LS_SORTFILES( \
-     "\n       -r      Sort the listing in reverse order") \
+     "\n       -r      Sort in reverse order") \
        USE_FEATURE_LS_SORTFILES( \
-     "\n       -S      Sort the listing by file size") \
+     "\n       -S      Sort by file size") \
      "\n       -s      List the size of each file, in blocks" \
        USE_FEATURE_AUTOWIDTH( \
-     "\n       -T NUM  Assume Tabstop every NUM columns") \
+     "\n       -T NUM  Assume tabstop every NUM columns") \
        USE_FEATURE_LS_TIMESTAMPS( \
-     "\n       -t      With -l: show modification time") \
+     "\n       -t      With -l: sort by modification time") \
        USE_FEATURE_LS_TIMESTAMPS( \
-     "\n       -u      With -l: show access time") \
+     "\n       -u      With -l: sort by access time") \
        USE_FEATURE_LS_SORTFILES( \
-     "\n       -v      Sort the listing by version") \
+     "\n       -v      Sort 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" \
+     "\n       -x      List by lines" \
        USE_FEATURE_LS_SORTFILES( \
-     "\n       -X      Sort the listing by extension") \
+     "\n       -X      Sort by extension") \
        USE_FEATURE_HUMAN_READABLE( \
-     "\n       -h      Print sizes in human readable format (e.g., 1K 243M 2G)") \
+     "\n       -h      List sizes in human readable format (1K 243M 2G)") \
        USE_SELINUX( \
-     "\n       -k      Print security context") \
+     "\n       -k      List security context") \
        USE_SELINUX( \
-     "\n       -K      Print security context in long format") \
+     "\n       -K      List security context in long format") \
        USE_SELINUX( \
-     "\n       -Z      Print security context and permission") \
+     "\n       -Z      List security context and permission") \
 
 #define lsattr_trivial_usage \
        "[-Radlv] [files...]"
      "\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       -l      List long flag names" \
      "\n       -v      List the file's version/generation number" \
 
 #define lsmod_trivial_usage \
        "[-knqrsv] MODULE [symbol=value...]"
 #define modprobe_full_usage "\n\n" \
        "Options:" \
+       USE_FEATURE_2_4_MODULES( \
      "\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" \
+       USE_FEATURE_MODPROBE_BLACKLIST( \
+     "\n       -b      Apply blacklist to module names too" \
+        )
 
 #define modprobe_notes_usage \
 "modprobe can (un)load a stack of modules, passing each module options (when\n" \
 #define runcon_full_usage "\n\n" \
        "Run a program in a different security context\n" \
      "\n       CONTEXT         Complete security context\n" \
-       USE_GETOPT_LONG( \
+       USE_FEATURE_RUNCON_LONG_OPTIONS( \
      "\n       -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( \
+       SKIP_FEATURE_RUNCON_LONG_OPTIONS( \
      "\n       -c      Compute process transition context before modifying" \
      "\n       -t TYPE Type (for same role as parent)" \
      "\n       -u USER User identity" \
 
 #define sendmail_trivial_usage \
        "[-w timeout] [-H [user:pass@]server[:port]] [-S]\n" \
-       "[-c charset] [-N type] [-i] [-s subject] [-a attach]... [-t] [-f sender] [rcpt]..."
+       "[-N type] [-f sender] [-F fullname] " \
+       USE_FEATURE_SENDMAIL_MAILX("[-s subject] [-c cc-rcpt]... [-j charset] [-a attach]... [-e err-rcpt] ") "[-t] [rcpt]..."
 #define sendmail_full_usage "\n\n" \
        "Send an email\n" \
      "\nOptions:" \
      "\n       -w timeout      Network timeout" \
      "\n       -H [user:pass@]server[:port] Server" \
      "\n       -S              Use openssl connection helper for secure servers" \
-     "\n       -c charset      Assume charset for body and subject (utf-8)" \
      "\n       -N type         Request delivery notification. Type is ignored" \
-     "\n       -i              Ignore single dots in mail body. Implied" \
+     "\n       -f sender       Sender" \
+     "\n       -F fullname     Sender full name. Overrides $NAME" \
+       USE_FEATURE_SENDMAIL_MAILX( \
      "\n       -s subject      Subject" \
+     "\n       -c rcpt         Cc: recipient. May be multiple" \
+     "\n       -j charset      Assume charset for body and subject (" CONFIG_FEATURE_SENDMAIL_CHARSET ")" \
      "\n       -a file         File to attach. May be multiple" \
+     "\n       -e rcpt         Errors-To: recipient" \
+       )
      "\n       -t              Read recipients and subject from body" \
-     "\n       -f sender       Sender" \
+     "\n" \
+     "\nOther options are silently ignored; -oi is implied" \
 
 #define seq_trivial_usage \
        "[first [increment]] last"
      "\n       -W      Display warnings about entries that had no matching files" \
 
 #define setfont_trivial_usage \
-       "[-m mapfile] font"
+       "FONT [-m MAPFILE] [-C TTY]"
 #define setfont_full_usage "\n\n" \
        "Load a console font\n" \
      "\nOptions:" \
-     "\n       -m mapfile      Load console screen map from mapfile"
+     "\n       -m MAPFILE      Load console screen map" \
+     "\n       -C TTY          Affect TTY instead of /dev/tty" \
+
 #define setfont_example_usage \
        "$ setfont -m koi8-r /etc/i18n/fontname\n"
 
        "Search for matching processes, and then\n" \
        "-K: stop all matching processes.\n" \
        "-S: start a process unless a matching process is found.\n" \
-       USE_GETOPT_LONG( \
+       USE_FEATURE_START_STOP_DAEMON_LONG_OPTIONS( \
      "\nProcess matching:" \
      "\n       -u,--user USERNAME|UID  Match only this user's processes" \
      "\n       -n,--name NAME          Match processes with NAME" \
      "\nOther:" \
        USE_FEATURE_START_STOP_DAEMON_FANCY( \
      "\n       -o,--oknodo             Exit with status 0 if nothing is done" \
-     "\n       -q,--quiet              Quiet" \
-       ) \
      "\n       -v,--verbose            Verbose" \
        ) \
-       SKIP_GETOPT_LONG( \
+     "\n       -q,--quiet              Quiet" \
+       ) \
+       SKIP_FEATURE_START_STOP_DAEMON_LONG_OPTIONS( \
      "\nProcess matching:" \
      "\n       -u USERNAME|UID Match only this user's processes" \
      "\n       -n NAME         Match processes with NAME" \
      "\nOther:" \
        USE_FEATURE_START_STOP_DAEMON_FANCY( \
      "\n       -o              Exit with status 0 if nothing is done" \
-     "\n       -q              Quiet" \
-       ) \
      "\n       -v              Verbose" \
        ) \
+     "\n       -q              Quiet" \
+       ) \
 
 #define stat_trivial_usage \
        "[OPTION] FILE..."
        "$ echo $?\n" \
        "1\n"
 
+#define tc_trivial_usage \
+       /*"[OPTIONS] "*/"OBJECT CMD [dev STRING]"
+#define tc_full_usage "\n\n" \
+       "OBJECT: {qdisc|class|filter}\n" \
+       "CMD: {add|del|change|replace|show}\n" \
+       "\n" \
+       "qdisc [ handle QHANDLE ] [ root |"USE_FEATURE_TC_INGRESS(" ingress |")" parent CLASSID ]\n" \
+       /* "\t[ estimator INTERVAL TIME_CONSTANT ]\n" */ \
+       "\t[ [ QDISC_KIND ] [ help | OPTIONS ] ]\n" \
+       "\tQDISC_KIND := { [p|b]fifo | tbf | prio | cbq | red | etc. }\n" \
+       "qdisc show [ dev STRING ]"USE_FEATURE_TC_INGRESS(" [ingress]")"\n" \
+       "class [ classid CLASSID ] [ root | parent CLASSID ]\n" \
+       "\t[ [ QDISC_KIND ] [ help | OPTIONS ] ]\n" \
+       "class show [ dev STRING ] [ root | parent CLASSID ]\n" \
+       "filter [ pref PRIO ] [ protocol PROTO ]\n" \
+       /* "\t[ estimator INTERVAL TIME_CONSTANT ]\n" */ \
+       "\t[ root | classid CLASSID ] [ handle FILTERID ]\n" \
+       "\t[ [ FILTER_TYPE ] [ help | OPTIONS ] ]\n" \
+       "filter show [ dev STRING ] [ root | parent CLASSID ]"
+
 #define tcpsvd_trivial_usage \
        "[-hEv] [-c n] [-C n:msg] [-b n] [-u user] [-l name] ip port prog..."
 /* with not-implemented options: */
      "\n       -v      Verbose" \
 
 #define top_trivial_usage \
-       "[-b] [-n COUNT] [-d SECONDS]"
+       "[-b] [-nCOUNT] [-dSECONDS]"
 #define top_full_usage "\n\n" \
        "Provide a view of process activity in real time.\n" \
        "Read the status of all processes from /proc each SECONDS\n" \
        "Mon Dec 17 10:31:44 GMT 2000"
 
 #define watchdog_trivial_usage \
-       "[-t N[ms]] [-F] DEV"
+       "[-t N[ms]] [-T N[ms]] [-F] DEV"
 #define watchdog_full_usage "\n\n" \
        "Periodically write to watchdog device DEV\n" \
      "\nOptions:" \
-     "\n       -t N    Timer period (default 30)" \
+     "\n       -T N    Reboot after N seconds if not reset (default 60)" \
+     "\n       -t N    Reset every N seconds (default 30)" \
      "\n       -F      Run in foreground" \
      "\n" \
-     "\nUse -t 500ms to specify period in milliseconds" \
+     "\nUse 500ms to specify period in milliseconds" \
 
 #define wc_trivial_usage \
        "[OPTION]... [FILE]..."
        "     31      46    1365 /etc/passwd\n"
 
 #define wget_trivial_usage \
-       USE_GETOPT_LONG( \
+       USE_FEATURE_WGET_LONG_OPTIONS( \
        "[-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( \
+       SKIP_FEATURE_WGET_LONG_OPTIONS( \
        "[-csq] [-O file] [-Y on/off] [-P DIR] [-U agent] url" \
        )
 #define wget_full_usage "\n\n" \
        "Manage a ZeroConf IPv4 link-local address\n" \
      "\nOptions:" \
      "\n       -f              Run in foreground" \
-     "\n       -q              Quit after address (no daemon)" \
+     "\n       -q              Quit after obtaining address" \
      "\n       -r 169.254.x.x  Request this address first" \
      "\n       -v              Verbose" \
+     "\n" \
+     "\nWith no -q, runs continuously monitoring for ARP conflicts," \
+     "\nexits only on I/O errors (link down etc)" \
 
 #endif /* __BB_USAGE_H__ */