]> git.vpit.fr Git - perl/modules/rgit.git/blobdiff - lib/App/Rgit/Command/Each.pm
Update VPIT::TestHelpers to 15e8aee3
[perl/modules/rgit.git] / lib / App / Rgit / Command / Each.pm
index ef384b76789af71aab74c27a25afdf7238e09d2b..fc5f10d03186db4b97dee7c323c090e2ba5fc1e1 100644 (file)
@@ -3,9 +3,10 @@ package App::Rgit::Command::Each;
 use strict;
 use warnings;
 
-use base qw/App::Rgit::Command/;
+use base qw<App::Rgit::Command>;
 
-use App::Rgit::Utils qw/:codes/;
+use App::Rgit::Guard;
+use App::Rgit::Utils qw<:codes>;
 
 =head1 NAME
 
@@ -13,11 +14,11 @@ App::Rgit::Command::Each - Class for commands to execute for each repository.
 
 =head1 VERSION
 
-Version 0.06
+Version 0.08
 
 =cut
 
-our $VERSION = '0.06';
+our $VERSION = '0.08';
 
 =head1 DESCRIPTION
 
@@ -38,12 +39,21 @@ It implements :
 sub run {
  my $self = shift;
  my $conf = shift;
+
  my $status = 0;
  my $code;
+
+ my $repos = 0;
+ my $guard = App::Rgit::Guard->new(sub { $conf->cwd_repo->chdir if $repos });
+
  for (@{$conf->repos}) {
   $_->chdir or next;
+  ++$repos;
+
   ($status, my $signal) = $_->run($conf, @{$self->args});
+
   $code = $self->report($conf, $_, $status, $signal) unless defined $code;
+
   last if $code & LAST;
   if ($code & REDO) {
    undef $code; # Don't save it, that would be very dumb
@@ -51,7 +61,7 @@ sub run {
   }
   undef $code unless $code & SAVE;
  }
- $conf->cwd_repo->chdir;
+
  return wantarray ? ($status, $code) : $status;
 }
 
@@ -69,7 +79,8 @@ You can contact me by mail or on C<irc.perl.org> (vincent).
 
 =head1 BUGS
 
-Please report any bugs or feature requests to C<bug-rgit at rt.cpan.org>, or through the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=rgit>.  I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
+Please report any bugs or feature requests to C<bug-rgit at rt.cpan.org>, or through the web interface at L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=rgit>.
+I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
 
 =head1 SUPPORT