[PATHCH] add option to supress "At subvol …" message in btrfs send
diff mbox

Message ID 20160507162958.GA2241@invalid
State New
Headers show

Commit Message

M G Berberich May 7, 2016, 4:29 p.m. UTC
Hello,

btrfs send puts a “At subvol …” on stderr, which is very annoying in
scripts, esp. cron-jobs. Piping stderr to /dev/null does suppress this
message, but also error-messages which one would probably want to
see. I added an option to not change the behavior of btrfs send
and possibly break existing scripts, but moving this message to
verbose would be O.K. for me too.




	MfG
	bmg

Comments

David Sterba May 12, 2016, 11:41 a.m. UTC | #1
On Sat, May 07, 2016 at 06:29:58PM +0200, M G Berberich wrote:
> btrfs send puts a “At subvol …” on stderr, which is very annoying in
> scripts, esp. cron-jobs. Piping stderr to /dev/null does suppress this
> message, but also error-messages which one would probably want to
> see. I added an option to not change the behavior of btrfs send
> and possibly break existing scripts, but moving this message to
> verbose would be O.K. for me too.

We should use the current verbosity option. For compatibility reasons,
I'd keep the 'At subvol' printed as default, matching verbosity level 1.
All existing messages verbosity should then become 2, and the proposed
quiet option 0.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch
diff mbox

diff -Naur btrfs-progs-4.4.1/cmds-send.c btrfs-progs-4.4.1-neu/cmds-send.c
--- btrfs-progs-4.4.1/cmds-send.c	2016-02-26 18:22:09.000000000 +0100
+++ btrfs-progs-4.4.1-neu/cmds-send.c	2016-05-07 18:10:13.935853568 +0200
@@ -45,6 +45,7 @@ 
 #include "send-utils.h"
 
 static int g_verbose = 0;
+static int g_quiet = 0;
 
 struct btrfs_send {
 	int send_fd;
@@ -442,7 +443,7 @@ 
 		static const struct option long_options[] = {
 			{ "no-data", no_argument, NULL, GETOPT_VAL_SEND_NO_DATA }
 		};
-		int c = getopt_long(argc, argv, "vec:f:i:p:", long_options, NULL);
+		int c = getopt_long(argc, argv, "vec:f:i:p:q", long_options, NULL);
 
 		if (c < 0)
 			break;
@@ -534,6 +535,9 @@ 
 			error("option -i was removed, use -c instead");
 			ret = 1;
 			goto out;
+		case 'q':
+			g_quiet = 1;
+			break;
 		case GETOPT_VAL_SEND_NO_DATA:
 			send_flags |= BTRFS_SEND_FLAG_NO_FILE_DATA;
 			break;
@@ -642,7 +646,8 @@ 
 		free(subvol);
 		subvol = argv[i];
 
-		fprintf(stderr, "At subvol %s\n", subvol);
+		if (!g_quiet)
+			fprintf(stderr, "At subvol %s\n", subvol);
 
 		subvol = realpath(subvol, NULL);
 		if (!subvol) {
@@ -737,5 +742,6 @@ 
 	"                 does not contain any file data and thus cannot be used",
 	"                 to transfer changes. This mode is faster and useful to",
 	"                 show the differences in metadata.",
+	"-q               suppress 'At subvol' message on stderr",
 	NULL
 };
diff -Naur btrfs-progs-4.4.1/Documentation/btrfs-send.asciidoc btrfs-progs-4.4.1-neu/Documentation/btrfs-send.asciidoc
--- btrfs-progs-4.4.1/Documentation/btrfs-send.asciidoc	2016-02-26 18:22:09.000000000 +0100
+++ btrfs-progs-4.4.1-neu/Documentation/btrfs-send.asciidoc	2016-05-07 18:14:24.615712654 +0200
@@ -45,6 +45,8 @@ 
 Send in NO_FILE_DATA mode. The output stream does not contain any file
 data and thus cannot be used to transfer changes. This mode is faster and
 useful to show the differences in metadata.
+-q::
+Suppress "At subvol" message on stderr.
 
 EXIT STATUS
 -----------