aboutsummaryrefslogtreecommitdiff
path: root/procps
diff options
context:
space:
mode:
authorJoshua Kahlenberg <jbkberg@gmail.com>2012-09-05 18:15:12 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2012-09-05 18:15:12 +0200
commitc4398514385f806e1725685d0fee62dc0eb69b9f (patch)
tree12812f00c4d76c1ec96803c80e3c1047e6aba0d5 /procps
parentd1d794fd4878834324602ae12ad7af73064683a9 (diff)
downloadbusybox-w32-c4398514385f806e1725685d0fee62dc0eb69b9f.tar.gz
busybox-w32-c4398514385f806e1725685d0fee62dc0eb69b9f.tar.bz2
busybox-w32-c4398514385f806e1725685d0fee62dc0eb69b9f.zip
sysctl: implement -q
function old new delta packed_usage 29208 29223 +15 sysctl_act_recursive 605 598 -7 sysctl_main 233 222 -11 Signed-off-by: Joshua Kahlenberg <jbkberg@gmail.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'procps')
-rw-r--r--procps/sysctl.c32
1 files changed, 19 insertions, 13 deletions
diff --git a/procps/sysctl.c b/procps/sysctl.c
index 5296d0f58..878656862 100644
--- a/procps/sysctl.c
+++ b/procps/sysctl.c
@@ -12,21 +12,23 @@
12 */ 12 */
13 13
14//usage:#define sysctl_trivial_usage 14//usage:#define sysctl_trivial_usage
15//usage: "[OPTIONS] [VALUE]..." 15//usage: "[OPTIONS] [KEY[=VALUE]]..."
16//usage:#define sysctl_full_usage "\n\n" 16//usage:#define sysctl_full_usage "\n\n"
17//usage: "Configure kernel parameters at runtime\n" 17//usage: "Show/set kernel parameters\n"
18//usage: "\n -n Don't print key names"
19//usage: "\n -e Don't warn about unknown keys" 18//usage: "\n -e Don't warn about unknown keys"
20//usage: "\n -w Change sysctl setting" 19//usage: "\n -n Don't show key names"
21//usage: "\n -p FILE Load sysctl settings from FILE (default /etc/sysctl.conf)" 20//usage: "\n -a Show all values"
22//usage: "\n -a Display all values" 21/* Same as -a, no need to show it */
23//usage: "\n -A Display all values in table form" 22/* //usage: "\n -A Show all values in table form" */
23//usage: "\n -w Set values"
24//usage: "\n -p FILE Set values from FILE (default /etc/sysctl.conf)"
25//usage: "\n -q Set values silently"
24//usage: 26//usage:
25//usage:#define sysctl_example_usage 27//usage:#define sysctl_example_usage
26//usage: "sysctl [-n] [-e] variable...\n" 28//usage: "sysctl [-n] [-e] variable...\n"
27//usage: "sysctl [-n] [-e] -w variable=value...\n" 29//usage: "sysctl [-n] [-e] [-q] -w variable=value...\n"
28//usage: "sysctl [-n] [-e] -a\n" 30//usage: "sysctl [-n] [-e] -a\n"
29//usage: "sysctl [-n] [-e] -p file (default /etc/sysctl.conf)\n" 31//usage: "sysctl [-n] [-e] [-q] -p file (default /etc/sysctl.conf)\n"
30//usage: "sysctl [-n] [-e] -A\n" 32//usage: "sysctl [-n] [-e] -A\n"
31 33
32#include "libbb.h" 34#include "libbb.h"
@@ -37,9 +39,11 @@ enum {
37 FLAG_TABLE_FORMAT = 1 << 2, /* not implemented */ 39 FLAG_TABLE_FORMAT = 1 << 2, /* not implemented */
38 FLAG_SHOW_ALL = 1 << 3, 40 FLAG_SHOW_ALL = 1 << 3,
39 FLAG_PRELOAD_FILE = 1 << 4, 41 FLAG_PRELOAD_FILE = 1 << 4,
42/* TODO: procps 3.2.8 seems to not require -w for KEY=VAL to work: */
40 FLAG_WRITE = 1 << 5, 43 FLAG_WRITE = 1 << 5,
44 FLAG_QUIET = 1 << 6,
41}; 45};
42#define OPTION_STR "neAapw" 46#define OPTION_STR "neAapwq"
43 47
44static void sysctl_dots_to_slashes(char *name) 48static void sysctl_dots_to_slashes(char *name)
45{ 49{
@@ -144,9 +148,11 @@ static int sysctl_act_on_setting(char *setting)
144//TODO: procps 3.2.7 writes "value\n", note trailing "\n" 148//TODO: procps 3.2.7 writes "value\n", note trailing "\n"
145 xwrite_str(fd, value); 149 xwrite_str(fd, value);
146 close(fd); 150 close(fd);
147 if (option_mask32 & FLAG_SHOW_KEYS) 151 if (!(option_mask32 & FLAG_QUIET)) {
148 printf("%s = ", outname); 152 if (option_mask32 & FLAG_SHOW_KEYS)
149 puts(value); 153 printf("%s = ", outname);
154 puts(value);
155 }
150 } else { 156 } else {
151 char c; 157 char c;
152 158