X-Git-Url: http://git.vpit.fr/?a=blobdiff_plain;f=lib%2FApp%2FRgit%2FCommand%2FEach.pm;h=3666c6320681565ed49660520ca5cab613f31ba0;hb=3ff07b59ff41754a77105973a4f1e9d6d25b2c3a;hp=ef843f76eddbb5e42f8bbaee80760335ddf585c8;hpb=af98236767735990609f068a18d3a7251f2efcab;p=perl%2Fmodules%2Frgit.git diff --git a/lib/App/Rgit/Command/Each.pm b/lib/App/Rgit/Command/Each.pm index ef843f7..3666c63 100644 --- a/lib/App/Rgit/Command/Each.pm +++ b/lib/App/Rgit/Command/Each.pm @@ -5,6 +5,7 @@ use warnings; use base qw/App::Rgit::Command/; +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.03 +Version 0.07 =cut -our $VERSION = '0.03'; +our $VERSION = '0.07'; =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; } @@ -59,6 +69,8 @@ sub run { L. +L. + =head1 AUTHOR Vincent Pit, C<< >>, L. @@ -67,7 +79,8 @@ You can contact me by mail or on C (vincent). =head1 BUGS -Please report any bugs or feature requests to C, or through the web interface at L. 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, or through the web interface at L. +I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. =head1 SUPPORT @@ -77,7 +90,7 @@ You can find documentation for this module with the perldoc command. =head1 COPYRIGHT & LICENSE -Copyright 2008 Vincent Pit, all rights reserved. +Copyright 2008,2009,2010 Vincent Pit, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.