X-Git-Url: https://git.madduck.net/code/myrepos.git/blobdiff_plain/6976c4433469d551a6be890659d59ab8418f897b..154cb0f1671c05c0dfb5ec1c13c3a1fe06983692:/mr diff --git a/mr b/mr index bc73d40..ccc7647 100755 --- a/mr +++ b/mr @@ -323,30 +323,6 @@ my (@ok, @failed, @skipped); main(); -sub dispatch { #{{{ - my $action=shift; - - # actions that do not operate on all repos - if ($action eq 'help') { - help(@ARGV); - } - elsif ($action eq 'config') { - config(@ARGV); - } - elsif ($action eq 'register') { - register(@ARGV); - } - - if ($jobs > 1) { - mrs($action, selectrepos()); - } - else { - foreach my $repo (selectrepos()) { - record($repo, action($action, @$repo)); - } - } -} #}}} - sub rcs_test { #{{{ my ($action, $dir, $topdir, $subdir) = @_; @@ -912,7 +888,31 @@ sub modifyconfig { #{{{ print $out @out; close $out; } #}}} - + +sub dispatch { #{{{ + my $action=shift; + + # actions that do not operate on all repos + if ($action eq 'help') { + help(@ARGV); + } + elsif ($action eq 'config') { + config(@ARGV); + } + elsif ($action eq 'register') { + register(@ARGV); + } + + if ($jobs > 1) { + mrs($action, selectrepos()); + } + else { + foreach my $repo (selectrepos()) { + record($repo, action($action, @$repo)); + } + } +} #}}} + sub help { #{{{ exec($config{''}{DEFAULT}{help}) || die "exec: $!"; } #}}} @@ -960,14 +960,19 @@ sub register { #{{{ # Find the closest known mrconfig file to the current # directory. $directory.="/" unless $directory=~/\/$/; + my $foundconfig=0; foreach my $topdir (reverse sort keys %config) { next unless length $topdir; if ($directory=~/^\Q$topdir\E/) { $ENV{MR_CONFIG}=$configfiles{$topdir}; $directory=$topdir; + $foundconfig=1; last; } } + if (! $foundconfig) { + $directory=""; # no config file, use builtin + } } if (@ARGV) { my $subdir=shift @ARGV;