| File: | blib/lib/App/Rgit/Command/Each.pm |
| Coverage: | 96.5% |
| line | stmt | bran | cond | sub | pod | time | code |
|---|---|---|---|---|---|---|---|
| 1 | package App::Rgit::Command::Each; | ||||||
| 2 | |||||||
| 3 | 3 3 3 | 10900 11 126 | use strict; | ||||
| 4 | 3 3 3 | 20 17 194 | use warnings; | ||||
| 5 | |||||||
| 6 | 3 3 3 | 23 6 372 | use base qw/App::Rgit::Command/; | ||||
| 7 | |||||||
| 8 | 3 3 3 | 878 10 776 | use App::Rgit::Guard; | ||||
| 9 | 3 3 3 | 27 7 1769 | use App::Rgit::Utils qw/:codes/; | ||||
| 10 | |||||||
| 11 - 19 | =head1 NAME App::Rgit::Command::Each - Class for commands to execute for each repository. =head1 VERSION Version 0.08 =cut | ||||||
| 20 | |||||||
| 21 | our $VERSION = '0.08'; | ||||||
| 22 | |||||||
| 23 - 37 | =head1 DESCRIPTION Class for commands to execute for each repository. This is an internal class to L<rgit>. =head1 METHODS This class inherits from L<App::Rgit::Command>. It implements : =head2 C<run> =cut | ||||||
| 38 | |||||||
| 39 | sub run { | ||||||
| 40 | 4 | 1 | 15 | my $self = shift; | |||
| 41 | 4 | 14 | my $conf = shift; | ||||
| 42 | |||||||
| 43 | 4 | 11 | my $status = 0; | ||||
| 44 | 4 | 11 | my $code; | ||||
| 45 | |||||||
| 46 | 4 | 12 | my $repos = 0; | ||||
| 47 | 4 4 | 122 112 | my $guard = App::Rgit::Guard->new(sub { $conf->cwd_repo->chdir if $repos }); | ||||
| 48 | |||||||
| 49 | 4 4 | 12 76 | for (@{$conf->repos}) { | ||||
| 50 | 13 | 195 | $_->chdir or next; | ||||
| 51 | 13 | 32 | ++$repos; | ||||
| 52 | |||||||
| 53 | 13 13 | 29 270 | ($status, my $signal) = $_->run($conf, @{$self->args}); | ||||
| 54 | |||||||
| 55 | 13 | 390 | $code = $self->report($conf, $_, $status, $signal) unless defined $code; | ||||
| 56 | |||||||
| 57 | 13 | 88 | last if $code & LAST; | ||||
| 58 | 12 | 39 | if ($code & REDO) { | ||||
| 59 | 3 | 13 | undef $code; # Don't save it, that would be very dumb | ||||
| 60 | 3 | 10 | redo; | ||||
| 61 | } | ||||||
| 62 | 9 | 65 | undef $code unless $code & SAVE; | ||||
| 63 | } | ||||||
| 64 | |||||||
| 65 | 4 | 146 | return wantarray ? ($status, $code) : $status; | ||||
| 66 | } | ||||||
| 67 | |||||||
| 68 - 97 | =head1 SEE ALSO
L<rgit>.
L<App::Rgit::Command>.
=head1 AUTHOR
Vincent Pit, C<< <perl at profvince.com> >>, L<http://profvince.com>.
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.
=head1 SUPPORT
You can find documentation for this module with the perldoc command.
perldoc App::Rgit::Command::Each
=head1 COPYRIGHT & LICENSE
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.
=cut | ||||||
| 98 | |||||||
| 99 | 1; # End of App::Rgit::Command::Each | ||||||