aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2007-11-15 07:02:55 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2007-11-15 07:02:55 +0000
commitf430cdbf2e7cfd284443addd98c93fbb7017d8e5 (patch)
tree9187e3703a17aeb35bfb93a9c3cfafc0385f1c64
parent1fe4e9e573c2c6f5338890cc3d1de6d2b7384600 (diff)
downloadbusybox-f430cdbf2e7cfd284443addd98c93fbb7017d8e5.tar.gz
df: add -i (conditional on CONFIG)
uasge: trim a bit
-rw-r--r--coreutils/Config.in7
-rw-r--r--coreutils/df.c26
-rw-r--r--include/usage.h74
3 files changed, 71 insertions, 36 deletions
diff --git a/coreutils/Config.in b/coreutils/Config.in
index 3370b2a5d..d3cbc4213 100644
--- a/coreutils/Config.in
+++ b/coreutils/Config.in
@@ -135,6 +135,13 @@ config DF
df reports the amount of disk space used and available
on filesystems.
+config FEATURE_DF_INODE
+ bool "Enable -i (inode information)"
+ default n
+ depends on DF
+ help
+ This option enables support for df -i.
+
config DIRNAME
bool "dirname"
default n
diff --git a/coreutils/df.c b/coreutils/df.c
index ad6a4f370..0d7e5206f 100644
--- a/coreutils/df.c
+++ b/coreutils/df.c
@@ -45,9 +45,14 @@ int df_main(int argc, char **argv)
/* default display is kilobytes */
const char *disp_units_hdr = "1k-blocks";
+ enum {
+ OPT_INODE = (ENABLE_FEATURE_HUMAN_READABLE ? (1 << 3) : (1 << 1))
+ * ENABLE_FEATURE_DF_INODE
+ };
+
#if ENABLE_FEATURE_HUMAN_READABLE
opt_complementary = "h-km:k-hm:m-hk";
- opt = getopt32(argv, "hmk");
+ opt = getopt32(argv, "hmk" USE_FEATURE_DF_INODE("i"));
if (opt & 1) {
df_disp_hr = 0;
disp_units_hdr = " Size";
@@ -56,8 +61,11 @@ int df_main(int argc, char **argv)
df_disp_hr = 1024*1024;
disp_units_hdr = "1M-blocks";
}
+ if (opt & OPT_INODE) {
+ disp_units_hdr = " Inodes";
+ }
#else
- opt = getopt32(argv, "k");
+ opt = getopt32(argv, "k" USE_FEATURE_DF_INODE("i"));
#endif
printf("Filesystem%11s%-15sUsed Available Use%% Mounted on\n",
@@ -104,7 +112,16 @@ int df_main(int argc, char **argv)
goto SET_ERROR;
}
- if ((s.f_blocks > 0) || !mount_table){
+ if ((s.f_blocks > 0) || !mount_table) {
+ if (opt & OPT_INODE) {
+ s.f_blocks = s.f_files;
+ s.f_bavail = s.f_bfree = s.f_ffree;
+ s.f_bsize = 1;
+#if ENABLE_FEATURE_HUMAN_READABLE
+ if (df_disp_hr)
+ df_disp_hr = 1;
+#endif
+ }
blocks_used = s.f_blocks - s.f_bfree;
blocks_percent_used = 0;
if (blocks_used + s.f_bavail) {
@@ -115,7 +132,8 @@ int df_main(int argc, char **argv)
if (strcmp(device, "rootfs") == 0) {
continue;
- } else if (strcmp(device, "/dev/root") == 0) {
+ }
+ if (strcmp(device, "/dev/root") == 0) {
/* Adjusts device to be the real root device,
* or leaves device alone if it can't find it */
device = find_block_device("/");
diff --git a/include/usage.h b/include/usage.h
index e609cbc18..953645ba0 100644
--- a/include/usage.h
+++ b/include/usage.h
@@ -99,7 +99,7 @@
"The ash shell (command interpreter)"
#define awk_trivial_usage \
- "[OPTION]... [program-text] [FILE ...]"
+ "[OPTION]... [program-text] [FILE...]"
#define awk_full_usage \
"Options:\n" \
" -v var=val Set variable\n" \
@@ -548,7 +548,7 @@
"Wed Apr 12 18:52:41 MDT 2000\n"
#define dc_trivial_usage \
- "expression ..."
+ "expression..."
#define dc_full_usage \
"This is a Tiny RPN calculator that understands the\n" \
"following operations: +, add, -, sub, *, mul, /, div, %, mod, " \
@@ -617,7 +617,7 @@
#define devfsd_trivial_usage \
"mntpnt [-v]" \
- USE_DEVFSD_FG_NP("[-fg][-np]" )
+ USE_DEVFSD_FG_NP("[-fg][-np]")
#define devfsd_full_usage \
"Manage devfs permissions and old device name symlinks" \
"\n\nOptions:" \
@@ -630,18 +630,28 @@
"\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 \
- "[-" USE_FEATURE_HUMAN_READABLE("hm") "k] [FILESYSTEM ...]"
+ DF_HAS_OPTIONS("[-") \
+ USE_FEATURE_HUMAN_READABLE("hmk") USE_FEATURE_DF_INODE("i") \
+ DF_HAS_OPTIONS("] ") "[FILESYSTEM...]"
#define df_full_usage \
- "Print the filesystem space used and space available" \
+ "Print filesystem usage statistics" \
+ DF_HAS_OPTIONS("\n\nOptions:") \
USE_FEATURE_HUMAN_READABLE( \
- "\n\nOptions control size display:" \
"\n -h Human readable (e.g. 1K 243M 2G)" \
"\n -m 1024*1024 blocks" \
- "\n -k 1024 blocks") \
- SKIP_FEATURE_HUMAN_READABLE( \
- "\n\nOptions:" \
- "\n -k Ignored")
+ "\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" \
@@ -828,7 +838,7 @@
" -L file Set badblocks list"
#define echo_trivial_usage \
- USE_FEATURE_FANCY_ECHO("[-neE] ") "[ARG ...]"
+ USE_FEATURE_FANCY_ECHO("[-neE] ") "[ARG...]"
#define echo_full_usage \
"Print the specified ARGs to stdout" \
USE_FEATURE_FANCY_ECHO( \
@@ -1075,7 +1085,7 @@
"$ freeramdisk /dev/ram2\n"
#define fsck_trivial_usage \
- "[-ANPRTV] [-C fd] [-t fstype] [fs-options] [filesys ...]"
+ "[-ANPRTV] [-C fd] [-t fstype] [fs-options] [filesys...]"
#define fsck_full_usage \
"Check and repair filesystems" \
"\n\nOptions:\n" \
@@ -1825,7 +1835,7 @@
" -u Unicode (utf-8)"
#define kill_trivial_usage \
- "[-l] [-signal] process-id [process-id ...]"
+ "[-l] [-signal] process-id [process-id...]"
#define kill_full_usage \
"Send a signal (default is TERM) to the specified process(es)" \
"\n\nOptions:\n" \
@@ -1841,7 +1851,7 @@
"$ kill 252\n"
#define killall_trivial_usage \
- "[-l] [-q] [-signal] process-name [process-name ...]"
+ "[-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" \
@@ -1887,7 +1897,7 @@
" reached"
#define setarch_trivial_usage \
- "personality program [args ...]"
+ "personality program [args...]"
#define setarch_full_usage \
"Personality may be:\n" \
" linux32 Set 32bit uname emulation\n" \
@@ -1940,7 +1950,7 @@
"$ logger \"hello\"\n"
#define login_trivial_usage \
- "[OPTION]... [username] [ENV=VAR ...]"
+ "[OPTION]... [username] [ENV=VAR...]"
#define login_full_usage \
"Begin a new session on the system" \
"\n\nOptions:\n" \
@@ -2297,7 +2307,7 @@
"-rw------- 1 andersen andersen 0 Apr 25 17:10 /tmp/temp.mWiLjM\n"
#define modprobe_trivial_usage \
- "[-knqrsv] MODULE [symbol=value ...]"
+ "[-knqrsv] MODULE [symbol=value...]"
#define modprobe_full_usage \
"Options:\n" \
" -k Make module autoclean-able\n" \
@@ -2331,7 +2341,7 @@
" the module and the alias.\n" \
" A module can be aliased more than once.\n" \
"\n" \
-" options <mod_name|alias_name> <symbol=value ...>\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" \
@@ -2367,7 +2377,7 @@
" from the command line\n"
#define more_trivial_usage \
- "[FILE ...]"
+ "[FILE...]"
#define more_full_usage \
"View FILE or standard input one screenful at a time"
#define more_example_usage \
@@ -2560,7 +2570,7 @@
)
#define nice_trivial_usage \
- "[-n ADJUST] [COMMAND [ARG] ...]"
+ "[-n ADJUST] [COMMAND [ARG]...]"
#define nice_full_usage \
"Run a program with modified scheduling priority" \
"\n\nOptions:\n" \
@@ -2678,7 +2688,7 @@
#endif
#define pidof_trivial_usage \
- "process-name [OPTION] [process-name ...]"
+ "process-name [OPTION] [process-name...]"
#define pidof_full_usage \
"List the PIDs of all processes with names that match the\n" \
@@ -2895,7 +2905,7 @@
" -n Disable byte order auto-detection"
#define realpath_trivial_usage \
- "pathname ..."
+ "pathname..."
#define realpath_full_usage \
"Return the absolute pathnames of given argument"
@@ -2909,7 +2919,7 @@
" -f Force reboot (don't go through init)"
#define renice_trivial_usage \
- "{{-n INCREMENT} | PRIORITY} [[-p | -g | -u] ID ...]"
+ "{{-n INCREMENT} | PRIORITY} [[-p | -g | -u] ID...]"
#define renice_full_usage \
"Change priority of running processes" \
"\n\nOptions:\n" \
@@ -3141,7 +3151,7 @@ USE_FEATURE_RUN_PARTS_FANCY("\n -l Prints names of all matching files even when
"\n -W Display warnings about entries that had no matching files"
#define setkeycodes_trivial_usage \
- "SCANCODE KEYCODE ..."
+ "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" \
@@ -3162,7 +3172,7 @@ USE_FEATURE_RUN_PARTS_FANCY("\n -l Prints names of all matching files even when
"Change boolean setting"
#define setsid_trivial_usage \
- "program [arg ...]"
+ "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."
@@ -3390,7 +3400,7 @@ USE_FEATURE_RUN_PARTS_FANCY("\n -l Prints names of all matching files even when
)
#define strings_trivial_usage \
- "[-afo] [-n length] [file ...]"
+ "[-afo] [-n length] [file...]"
#define strings_full_usage \
"Display printable strings in a binary file" \
"\n\nOptions:" \
@@ -3495,8 +3505,8 @@ USE_FEATURE_RUN_PARTS_FANCY("\n -l Prints names of all matching files even when
" -a Display all values\n" \
" -A Display all values in table form"
#define sysctl_example_usage \
- "sysctl [-n] variable ...\n" \
- "sysctl [-n] -w variable=value ...\n" \
+ "sysctl [-n] variable...\n" \
+ "sysctl [-n] -w variable=value...\n" \
"sysctl [-n] -a\n" \
"sysctl [-n] -p file (default /etc/sysctl.conf)\n" \
"sysctl [-n] -A\n"
@@ -3553,7 +3563,7 @@ USE_FEATURE_RUN_PARTS_FANCY("\n -l Prints names of all matching files even when
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)] ..."
+ "[-f TARFILE] [-C DIR] [FILE(s)]..."
#define tar_full_usage \
"Create, extract, or list files from a tar file" \
"\n\nOptions:\n" \
@@ -3737,7 +3747,7 @@ USE_FEATURE_RUN_PARTS_FANCY("\n -l Prints names of all matching files even when
"and show the status for however many processes will fit on the screen."
#define touch_trivial_usage \
- "[-c] FILE [FILE ...]"
+ "[-c] FILE [FILE...]"
#define touch_full_usage \
"Update the last-modified date on the given FILE[s]" \
"\n\nOptions:\n" \
@@ -4011,7 +4021,7 @@ USE_FEATURE_RUN_PARTS_FANCY("\n -l Prints names of all matching files even when
"$\n"
#define vconfig_trivial_usage \
- "COMMAND [OPTIONS] ..."
+ "COMMAND [OPTIONS]..."
#define vconfig_full_usage \
"Create and remove virtual ethernet devices" \
"\n\nOptions:\n" \
@@ -4094,7 +4104,7 @@ USE_FEATURE_RUN_PARTS_FANCY("\n -l Prints names of all matching files even when
" -Y Use proxy ('on' or 'off')"
#define which_trivial_usage \
- "[COMMAND ...]"
+ "[COMMAND...]"
#define which_full_usage \
"Locate a COMMAND"
#define which_example_usage \