X-Git-Url: https://git.madduck.net/code/myrepos.git/blobdiff_plain/f096cfec16f6b36046862cdf84c88a426948a6dc..f3e4e5d7a71887dbaa32d33a2e3b376b311fa1a8:/mr diff --git a/mr b/mr index f2e4af5..f26b144 100755 --- a/mr +++ b/mr @@ -175,6 +175,7 @@ loadconfig($config); #use Data::Dumper; #print Dumper(\%config); +# alias expansion and command stemming my $action=shift @ARGV; if (! exists $knownactions{$action}) { if (exists $alias{$action}) { @@ -192,6 +193,15 @@ if (! exists $knownactions{$action}) { } } +# handle being in a subdir of a repository +foreach my $topdir (sort keys %config) { + foreach my $subdir (sort keys %{$config{$topdir}}) { + if ($directory =~ /^\Q$topdir$subdir\E\//) { + $directory=$topdir.$subdir; + } + } +} + my (@failed, @successful, @skipped); my $first=1; foreach my $topdir (sort keys %config) { @@ -203,14 +213,9 @@ foreach my $topdir (sort keys %config) { if (defined $directory && $dir ne $directory && $dir !~ /^\Q$directory\E\//) { - print "mr $action: $dir skipped per -d parameter ($directory)\n" if $verbose; - push @skipped, $dir; next; } - print "\n" unless $first; - $first=0; - action($action, $dir, $topdir, $subdir); } @@ -273,6 +278,9 @@ sub action { else { push @successful, $dir; } + + print "\n" unless $first; + $first=0; } } @@ -285,7 +293,8 @@ sub showstat { } return; } -print "\nmr $action: finished (".join("; ", +print "\n" unless $first; +print "mr $action: finished (".join("; ", showstat($#successful+1, "successful", "successful"), showstat($#failed+1, "failed", "failed"), showstat($#skipped+1, "skipped", "skipped"), @@ -405,17 +414,17 @@ lib = \ } update = \ if [ -d .svn ]; then \ - svn update; \ + svn update "$@"; \ elif [ -d .git ]; then \ - git pull origin master; \ + git pull origin master "$@"; \ else \ error "unknown repo type"; \ fi status = \ if [ -d .svn ]; then \ - svn status; \ + svn status "$@"; \ elif [ -d .git ]; then \ - git status || true; \ + git status "$@" || true; \ else \ error "unknown repo type"; \ fi