]> git.madduck.net Git - code/myrepos.git/commitdiff

madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

Now --quiet supresses all output from commands run, as well as from mr, unless a...
authorJoey Hess <joey@kitenet.net>
Mon, 25 Apr 2011 23:47:07 +0000 (19:47 -0400)
committerJoey Hess <joey@kitenet.net>
Mon, 25 Apr 2011 23:47:07 +0000 (19:47 -0400)
debian/changelog
mr

index 575cb01c0e95d0f620b3c33679c1b7f09fda8bc2..1dcb5248c4d6592ad272ee8fde83aa44efae0e8e 100644 (file)
@@ -1,6 +1,8 @@
 mr (1.03) UNRELEASED; urgency=low
 
   * Added git-subtree library. Thanks, Svend Sorensen
+  * Now --quiet supresses all output from commands run, as well
+    as from mr, unless a command fails.
 
  -- Joey Hess <joeyh@debian.org>  Mon, 28 Mar 2011 17:04:56 -0400
 
diff --git a/mr b/mr
index 6cac30c99bb8dfafa9badc7299d9064915be92c0..17f95859912aac266ae71b6e71dbb0ae0eb154c4 100755 (executable)
--- a/mr
+++ b/mr
@@ -222,10 +222,9 @@ Be verbose.
 
 =item --quiet
 
-Be quiet. This supresses mr's usual output. Any output from the
-commands that mr runs will still be displayed.
-
-For example, to see only uncommitted changes, use "mr -q status"
+Be quiet. This supresses mr's usual output, as well as any output from
+commands that are run (including stderr output). If a command fails,
+the output will be shown.
 
 =item -k
 
@@ -630,14 +629,16 @@ sub action {
                }
        }
        else {
+               my $actionmsg;
                if (! $no_chdir) {
-                       print "mr $action: $fulldir\n" unless $quiet;
+                       $actionmsg="mr $action: $fulldir";
                }
                else {
                        my $s=$directory;
                        $s=~s/^\Q$fulldir\E\/?//;
-                       print "mr $action: $fulldir (in subdir $s)\n" unless $quiet;
+                       $actionmsg="mr $action: $fulldir (in subdir $s)";
                }
+               print "$actionmsg\n" unless $quiet;
 
                my $hookret=hook("pre_$action", $topdir, $subdir);
                return $hookret if $hookret != OK;
@@ -646,7 +647,18 @@ sub action {
                        "my_action(){ $command\n }; my_action ".
                        join(" ", map { s/\\/\\\\/g; s/"/\"/g; '"'.$_.'"' } @ARGV);
                print "mr $action: running >>$command<<\n" if $verbose;
-               my $ret=system($command);
+               my $ret;
+               if ($quiet) {
+                       my $output = qx/$command 2>&1/;
+                       $ret = $?;
+                       if ($ret != 0) {
+                               print "$actionmsg\n";
+                               print STDERR $output;
+                       }
+               }
+               else {
+                       $ret=system($command);
+               }
                if ($ret != 0) {
                        if (($? & 127) == 2) {
                                print STDERR "mr $action: interrupted\n";
@@ -702,7 +714,17 @@ sub hook {
        my $shell="set -e;".$lib.
                "my_hook(){ $command\n }; my_hook";
        print "mr $hook: running >>$shell<<\n" if $verbose;
-       my $ret=system($shell);
+       my $ret;
+       if ($quiet) {
+               my $output = qx/$shell 2>&1/;
+               $ret = $?;
+               if ($ret != 0) {
+                       print STDERR $output;
+               }
+       }
+       else {
+               $ret=system($shell);
+       }
        if ($ret != 0) {
                if (($? & 127) == 2) {
                        print STDERR "mr $hook: interrupted\n";