df: add -i (conditional on CONFIG)

uasge: trim a bit
This commit is contained in:
Denis Vlasenko 2007-11-15 07:02:55 +00:00
parent 1fe4e9e573
commit f430cdbf2e
3 changed files with 71 additions and 36 deletions

View File

@ -135,6 +135,13 @@ config DF
df reports the amount of disk space used and available df reports the amount of disk space used and available
on filesystems. 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 config DIRNAME
bool "dirname" bool "dirname"
default n default n

View File

@ -45,9 +45,14 @@ int df_main(int argc, char **argv)
/* default display is kilobytes */ /* default display is kilobytes */
const char *disp_units_hdr = "1k-blocks"; 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 #if ENABLE_FEATURE_HUMAN_READABLE
opt_complementary = "h-km:k-hm:m-hk"; opt_complementary = "h-km:k-hm:m-hk";
opt = getopt32(argv, "hmk"); opt = getopt32(argv, "hmk" USE_FEATURE_DF_INODE("i"));
if (opt & 1) { if (opt & 1) {
df_disp_hr = 0; df_disp_hr = 0;
disp_units_hdr = " Size"; disp_units_hdr = " Size";
@ -56,8 +61,11 @@ int df_main(int argc, char **argv)
df_disp_hr = 1024*1024; df_disp_hr = 1024*1024;
disp_units_hdr = "1M-blocks"; disp_units_hdr = "1M-blocks";
} }
if (opt & OPT_INODE) {
disp_units_hdr = " Inodes";
}
#else #else
opt = getopt32(argv, "k"); opt = getopt32(argv, "k" USE_FEATURE_DF_INODE("i"));
#endif #endif
printf("Filesystem%11s%-15sUsed Available Use%% Mounted on\n", printf("Filesystem%11s%-15sUsed Available Use%% Mounted on\n",
@ -104,7 +112,16 @@ int df_main(int argc, char **argv)
goto SET_ERROR; 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_used = s.f_blocks - s.f_bfree;
blocks_percent_used = 0; blocks_percent_used = 0;
if (blocks_used + s.f_bavail) { if (blocks_used + s.f_bavail) {
@ -115,7 +132,8 @@ int df_main(int argc, char **argv)
if (strcmp(device, "rootfs") == 0) { if (strcmp(device, "rootfs") == 0) {
continue; continue;
} else if (strcmp(device, "/dev/root") == 0) { }
if (strcmp(device, "/dev/root") == 0) {
/* Adjusts device to be the real root device, /* Adjusts device to be the real root device,
* or leaves device alone if it can't find it */ * or leaves device alone if it can't find it */
device = find_block_device("/"); device = find_block_device("/");

View File

@ -99,7 +99,7 @@
"The ash shell (command interpreter)" "The ash shell (command interpreter)"
#define awk_trivial_usage \ #define awk_trivial_usage \
"[OPTION]... [program-text] [FILE ...]" "[OPTION]... [program-text] [FILE...]"
#define awk_full_usage \ #define awk_full_usage \
"Options:\n" \ "Options:\n" \
" -v var=val Set variable\n" \ " -v var=val Set variable\n" \
@ -548,7 +548,7 @@
"Wed Apr 12 18:52:41 MDT 2000\n" "Wed Apr 12 18:52:41 MDT 2000\n"
#define dc_trivial_usage \ #define dc_trivial_usage \
"expression ..." "expression..."
#define dc_full_usage \ #define dc_full_usage \
"This is a Tiny RPN calculator that understands the\n" \ "This is a Tiny RPN calculator that understands the\n" \
"following operations: +, add, -, sub, *, mul, /, div, %, mod, " \ "following operations: +, add, -, sub, *, mul, /, div, %, mod, " \
@ -617,7 +617,7 @@
#define devfsd_trivial_usage \ #define devfsd_trivial_usage \
"mntpnt [-v]" \ "mntpnt [-v]" \
USE_DEVFSD_FG_NP("[-fg][-np]" ) USE_DEVFSD_FG_NP("[-fg][-np]")
#define devfsd_full_usage \ #define devfsd_full_usage \
"Manage devfs permissions and old device name symlinks" \ "Manage devfs permissions and old device name symlinks" \
"\n\nOptions:" \ "\n\nOptions:" \
@ -630,18 +630,28 @@
"\n and processing synthetic REGISTER events," \ "\n and processing synthetic REGISTER events," \
"\n do not poll for 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 \ #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 \ #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( \ USE_FEATURE_HUMAN_READABLE( \
"\n\nOptions control size display:" \
"\n -h Human readable (e.g. 1K 243M 2G)" \ "\n -h Human readable (e.g. 1K 243M 2G)" \
"\n -m 1024*1024 blocks" \ "\n -m 1024*1024 blocks" \
"\n -k 1024 blocks") \ "\n -k 1024 blocks" \
SKIP_FEATURE_HUMAN_READABLE( \ ) \
"\n\nOptions:" \ USE_FEATURE_DF_INODE( \
"\n -k Ignored") "\n -i Inodes" \
)
#define df_example_usage \ #define df_example_usage \
"$ df\n" \ "$ df\n" \
"Filesystem 1k-blocks Used Available Use% Mounted on\n" \ "Filesystem 1k-blocks Used Available Use% Mounted on\n" \
@ -828,7 +838,7 @@
" -L file Set badblocks list" " -L file Set badblocks list"
#define echo_trivial_usage \ #define echo_trivial_usage \
USE_FEATURE_FANCY_ECHO("[-neE] ") "[ARG ...]" USE_FEATURE_FANCY_ECHO("[-neE] ") "[ARG...]"
#define echo_full_usage \ #define echo_full_usage \
"Print the specified ARGs to stdout" \ "Print the specified ARGs to stdout" \
USE_FEATURE_FANCY_ECHO( \ USE_FEATURE_FANCY_ECHO( \
@ -1075,7 +1085,7 @@
"$ freeramdisk /dev/ram2\n" "$ freeramdisk /dev/ram2\n"
#define fsck_trivial_usage \ #define fsck_trivial_usage \
"[-ANPRTV] [-C fd] [-t fstype] [fs-options] [filesys ...]" "[-ANPRTV] [-C fd] [-t fstype] [fs-options] [filesys...]"
#define fsck_full_usage \ #define fsck_full_usage \
"Check and repair filesystems" \ "Check and repair filesystems" \
"\n\nOptions:\n" \ "\n\nOptions:\n" \
@ -1825,7 +1835,7 @@
" -u Unicode (utf-8)" " -u Unicode (utf-8)"
#define kill_trivial_usage \ #define kill_trivial_usage \
"[-l] [-signal] process-id [process-id ...]" "[-l] [-signal] process-id [process-id...]"
#define kill_full_usage \ #define kill_full_usage \
"Send a signal (default is TERM) to the specified process(es)" \ "Send a signal (default is TERM) to the specified process(es)" \
"\n\nOptions:\n" \ "\n\nOptions:\n" \
@ -1841,7 +1851,7 @@
"$ kill 252\n" "$ kill 252\n"
#define killall_trivial_usage \ #define killall_trivial_usage \
"[-l] [-q] [-signal] process-name [process-name ...]" "[-l] [-q] [-signal] process-name [process-name...]"
#define killall_full_usage \ #define killall_full_usage \
"Send a signal (default is TERM) to the specified process(es)" \ "Send a signal (default is TERM) to the specified process(es)" \
"\n\nOptions:\n" \ "\n\nOptions:\n" \
@ -1887,7 +1897,7 @@
" reached" " reached"
#define setarch_trivial_usage \ #define setarch_trivial_usage \
"personality program [args ...]" "personality program [args...]"
#define setarch_full_usage \ #define setarch_full_usage \
"Personality may be:\n" \ "Personality may be:\n" \
" linux32 Set 32bit uname emulation\n" \ " linux32 Set 32bit uname emulation\n" \
@ -1940,7 +1950,7 @@
"$ logger \"hello\"\n" "$ logger \"hello\"\n"
#define login_trivial_usage \ #define login_trivial_usage \
"[OPTION]... [username] [ENV=VAR ...]" "[OPTION]... [username] [ENV=VAR...]"
#define login_full_usage \ #define login_full_usage \
"Begin a new session on the system" \ "Begin a new session on the system" \
"\n\nOptions:\n" \ "\n\nOptions:\n" \
@ -2297,7 +2307,7 @@
"-rw------- 1 andersen andersen 0 Apr 25 17:10 /tmp/temp.mWiLjM\n" "-rw------- 1 andersen andersen 0 Apr 25 17:10 /tmp/temp.mWiLjM\n"
#define modprobe_trivial_usage \ #define modprobe_trivial_usage \
"[-knqrsv] MODULE [symbol=value ...]" "[-knqrsv] MODULE [symbol=value...]"
#define modprobe_full_usage \ #define modprobe_full_usage \
"Options:\n" \ "Options:\n" \
" -k Make module autoclean-able\n" \ " -k Make module autoclean-able\n" \
@ -2331,7 +2341,7 @@
" the module and the alias.\n" \ " the module and the alias.\n" \
" A module can be aliased more than once.\n" \ " A module can be aliased more than once.\n" \
"\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" \ " When loading module mod_name (or the module aliased by alias_name), pass\n" \
" the \"symbol=value\" pairs as option to that module.\n" \ " the \"symbol=value\" pairs as option to that module.\n" \
"\n" \ "\n" \
@ -2367,7 +2377,7 @@
" from the command line\n" " from the command line\n"
#define more_trivial_usage \ #define more_trivial_usage \
"[FILE ...]" "[FILE...]"
#define more_full_usage \ #define more_full_usage \
"View FILE or standard input one screenful at a time" "View FILE or standard input one screenful at a time"
#define more_example_usage \ #define more_example_usage \
@ -2560,7 +2570,7 @@
) )
#define nice_trivial_usage \ #define nice_trivial_usage \
"[-n ADJUST] [COMMAND [ARG] ...]" "[-n ADJUST] [COMMAND [ARG]...]"
#define nice_full_usage \ #define nice_full_usage \
"Run a program with modified scheduling priority" \ "Run a program with modified scheduling priority" \
"\n\nOptions:\n" \ "\n\nOptions:\n" \
@ -2678,7 +2688,7 @@
#endif #endif
#define pidof_trivial_usage \ #define pidof_trivial_usage \
"process-name [OPTION] [process-name ...]" "process-name [OPTION] [process-name...]"
#define pidof_full_usage \ #define pidof_full_usage \
"List the PIDs of all processes with names that match the\n" \ "List the PIDs of all processes with names that match the\n" \
@ -2895,7 +2905,7 @@
" -n Disable byte order auto-detection" " -n Disable byte order auto-detection"
#define realpath_trivial_usage \ #define realpath_trivial_usage \
"pathname ..." "pathname..."
#define realpath_full_usage \ #define realpath_full_usage \
"Return the absolute pathnames of given argument" "Return the absolute pathnames of given argument"
@ -2909,7 +2919,7 @@
" -f Force reboot (don't go through init)" " -f Force reboot (don't go through init)"
#define renice_trivial_usage \ #define renice_trivial_usage \
"{{-n INCREMENT} | PRIORITY} [[-p | -g | -u] ID ...]" "{{-n INCREMENT} | PRIORITY} [[-p | -g | -u] ID...]"
#define renice_full_usage \ #define renice_full_usage \
"Change priority of running processes" \ "Change priority of running processes" \
"\n\nOptions:\n" \ "\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" "\n -W Display warnings about entries that had no matching files"
#define setkeycodes_trivial_usage \ #define setkeycodes_trivial_usage \
"SCANCODE KEYCODE ..." "SCANCODE KEYCODE..."
#define setkeycodes_full_usage \ #define setkeycodes_full_usage \
"Set entries into the kernel's scancode-to-keycode map,\n" \ "Set entries into the kernel's scancode-to-keycode map,\n" \
"allowing unusual keyboards to generate usable keycodes.\n\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" "Change boolean setting"
#define setsid_trivial_usage \ #define setsid_trivial_usage \
"program [arg ...]" "program [arg...]"
#define setsid_full_usage \ #define setsid_full_usage \
"Run any program in a new session by calling setsid() before\n" \ "Run any program in a new session by calling setsid() before\n" \
"exec'ing the rest of its arguments. See setsid(2) for details." "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 \ #define strings_trivial_usage \
"[-afo] [-n length] [file ...]" "[-afo] [-n length] [file...]"
#define strings_full_usage \ #define strings_full_usage \
"Display printable strings in a binary file" \ "Display printable strings in a binary file" \
"\n\nOptions:" \ "\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\n" \
" -A Display all values in table form" " -A Display all values in table form"
#define sysctl_example_usage \ #define sysctl_example_usage \
"sysctl [-n] variable ...\n" \ "sysctl [-n] variable...\n" \
"sysctl [-n] -w variable=value ...\n" \ "sysctl [-n] -w variable=value...\n" \
"sysctl [-n] -a\n" \ "sysctl [-n] -a\n" \
"sysctl [-n] -p file (default /etc/sysctl.conf)\n" \ "sysctl [-n] -p file (default /etc/sysctl.conf)\n" \
"sysctl [-n] -A\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_BZIP2("j") USE_FEATURE_TAR_LZMA("a") \
USE_FEATURE_TAR_COMPRESS("Z") "xtvO] " \ USE_FEATURE_TAR_COMPRESS("Z") "xtvO] " \
USE_FEATURE_TAR_FROM("[-X FILE] ") \ USE_FEATURE_TAR_FROM("[-X FILE] ") \
"[-f TARFILE] [-C DIR] [FILE(s)] ..." "[-f TARFILE] [-C DIR] [FILE(s)]..."
#define tar_full_usage \ #define tar_full_usage \
"Create, extract, or list files from a tar file" \ "Create, extract, or list files from a tar file" \
"\n\nOptions:\n" \ "\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." "and show the status for however many processes will fit on the screen."
#define touch_trivial_usage \ #define touch_trivial_usage \
"[-c] FILE [FILE ...]" "[-c] FILE [FILE...]"
#define touch_full_usage \ #define touch_full_usage \
"Update the last-modified date on the given FILE[s]" \ "Update the last-modified date on the given FILE[s]" \
"\n\nOptions:\n" \ "\n\nOptions:\n" \
@ -4011,7 +4021,7 @@ USE_FEATURE_RUN_PARTS_FANCY("\n -l Prints names of all matching files even when
"$\n" "$\n"
#define vconfig_trivial_usage \ #define vconfig_trivial_usage \
"COMMAND [OPTIONS] ..." "COMMAND [OPTIONS]..."
#define vconfig_full_usage \ #define vconfig_full_usage \
"Create and remove virtual ethernet devices" \ "Create and remove virtual ethernet devices" \
"\n\nOptions:\n" \ "\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')" " -Y Use proxy ('on' or 'off')"
#define which_trivial_usage \ #define which_trivial_usage \
"[COMMAND ...]" "[COMMAND...]"
#define which_full_usage \ #define which_full_usage \
"Locate a COMMAND" "Locate a COMMAND"
#define which_example_usage \ #define which_example_usage \