]> git.madduck.net Git - code/myrepos.git/blobdiff - mr

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:

* Fix output of "mr config DEFAULT lib".
[code/myrepos.git] / mr
diff --git a/mr b/mr
index 80ccc78eef899c9388787665d574ef478253224e..4630f06898eb23fcdbd49dde3cc78ffeaf70863e 100755 (executable)
--- a/mr
+++ b/mr
@@ -22,7 +22,7 @@ B<mr> [options] log
 
 B<mr> [options] register [repository]
 
-B<mr> [options] config section [parameter=[value] ...]
+B<mr> [options] config section ["parameter=[value]" ...]
 
 B<mr> [options] action [params ...]
 
@@ -188,9 +188,9 @@ that contains the mrconfig file, but you can also choose to use absolute
 paths.
 
 Within a section, each parameter defines a shell command to run to handle a
-given action. mr contains default handlers for the "update", "status", and
-"commit" actions, so normally you only need to specify what to do for
-"checkout".
+given action. mr contains default handlers for "update", "status",
+"commit", and other standard actions. Normally you only need to specify what
+to do for "checkout".
 
 Note that these shell commands are run in a "set -e" shell
 environment, where any additional parameters you pass are available in
@@ -227,14 +227,6 @@ If the "chain" parameter is set and its command returns true, then B<mr>
 will try to load a .mrconfig file from the root of the repository. (You
 should avoid chaining from repositories with untrusted committers.)
 
-=item deleted
-
-If the "deleted" parameter is set and its command returns true, then
-B<mr> will treat the repository as deleted. It won't ever actually delete
-the repository, but it will warn if it sees the repository's directory.
-This is useful when one mrconfig file is shared amoung multiple machines,
-to keep track of and remember to delete old repositories.
-
 =item lib
 
 The "lib" parameter can specify some shell code that will be run before each
@@ -358,6 +350,7 @@ elsif ($action eq 'config') {
                                    exists $config{$topdir}{$section}{$_}) {
                                        print $config{$topdir}{$section}{$_}."\n";
                                        $found=1;
+                                       last if $section eq 'DEFAULT';
                                }
                        }
                        if (! $found) {
@@ -433,33 +426,6 @@ sub action { #{{{
        my $lib=exists $config{$topdir}{$subdir}{lib} ?
                       $config{$topdir}{$subdir}{lib}."\n" : "";
 
-       if (exists $config{$topdir}{$subdir}{deleted}) {
-               my $test="set -e;".$lib.$config{$topdir}{$subdir}{deleted};
-               print "mr $action: running deleted test >>$test<<\n" if $verbose;
-               my $ret=system($test);
-               if ($ret != 0) {
-                       if (($? & 127) == 2) {
-                               print STDERR "mr $action: interrupted\n";
-                               exit 2;
-                       }
-                       elsif ($? & 127) {
-                               print STDERR "mr $action: deleted test received signal ".($? & 127)."\n";
-                       }
-               }
-               if ($ret >> 8 == 0) {
-                       if (-d $dir) {
-                               print STDERR "mr error: $dir should be deleted yet still exists\n\n";
-                               push @failed, $dir;
-                               return;
-                       }
-                       else {
-                               print "mr $action: $dir skipped (as deleted) per config file\n" if $verbose;
-                               push @skipped, $dir;
-                               return;
-                       }
-               }
-       }
-
        if ($action eq 'checkout') {
                if (-d $dir) {
                        print "mr $action: $dir already exists, skipping checkout\n" if $verbose;