repost: [PATCH] add -q option to sysctl applet

Joshua Kahlenberg jbkberg at gmail.com
Sun Sep 2 17:42:25 UTC 2012


Sorry, previous patch was wrapped

diff -Naur busybox/procps/sysctl.c busybox.mod/procps/sysctl.c
--- busybox/procps/sysctl.c	2012-09-02 08:37:46.621011835 -0500
+++ busybox.mod/procps/sysctl.c	2012-09-02 12:12:39.844650899 -0500
@@ -21,6 +21,7 @@
  //usage:     "\n	-p FILE	Load sysctl settings from FILE (default  
/etc/sysctl.conf)"
  //usage:     "\n	-a	Display all values"
  //usage:     "\n	-A	Display all values in table form"
+//usage:     "\n	-q      Silence standard output"
  //usage:
  //usage:#define sysctl_example_usage
  //usage:       "sysctl [-n] [-e] variable...\n"
@@ -28,6 +29,7 @@
  //usage:       "sysctl [-n] [-e] -a\n"
  //usage:       "sysctl [-n] [-e] -p file	(default /etc/sysctl.conf)\n"
  //usage:       "sysctl [-n] [-e] -A\n"
+//usage:       "sysctl [-n] [-e] -q\n"

  #include "libbb.h"

@@ -38,8 +40,9 @@
  	FLAG_SHOW_ALL        = 1 << 3,
  	FLAG_PRELOAD_FILE    = 1 << 4,
  	FLAG_WRITE           = 1 << 5,
+	FLAG_QUIET           = 1 << 6,
  };
-#define OPTION_STR "neAapw"
+#define OPTION_STR "neAapwq"

  static void sysctl_dots_to_slashes(char *name)
  {
@@ -146,6 +149,7 @@
  		close(fd);
  		if (option_mask32 & FLAG_SHOW_KEYS)
  			printf("%s = ", outname);
+		if (!(option_mask32 & FLAG_QUIET))
  		puts(value);
  	} else {
  		char c;
@@ -251,9 +255,12 @@

  	opt = getopt32(argv, "+" OPTION_STR); /* '+' - stop on first non-option  
*/
  	argv += optind;
-	opt ^= (FLAG_SHOW_KEYS | FLAG_SHOW_KEY_ERRORS);
+	opt ^= FLAG_SHOW_KEY_ERRORS;
  	option_mask32 = opt;

+	if (!(opt & FLAG_QUIET))
+		option_mask32 ^= FLAG_SHOW_KEYS;
+	
  	if (opt & FLAG_PRELOAD_FILE) {
  		option_mask32 |= FLAG_WRITE;
  		/* xchdir("/proc/sys") is inside */


-- 
jbkberg (AT) gmail.com


More information about the busybox mailing list