]> git.vpit.fr Git - perl/modules/rgit.git/blob - lib/App/Rgit/Command/Each.pm
LAST has priority over REDO
[perl/modules/rgit.git] / lib / App / Rgit / Command / Each.pm
1 package App::Rgit::Command::Each;
2
3 use strict;
4 use warnings;
5
6 use base qw/App::Rgit::Command/;
7
8 use App::Rgit::Utils qw/:codes/;
9
10 =head1 NAME
11
12 App::Rgit::Command::Each - Class for commands to execute for each repository.
13
14 =head1 VERSION
15
16 Version 0.03
17
18 =cut
19
20 our $VERSION = '0.03';
21
22 =head1 DESCRIPTION
23
24 Class for commands to execute for each repository.
25
26 This is an internal class to L<rgit>.
27
28 =head1 METHODS
29
30 This class inherits from L<App::Rgit::Command>.
31
32 It implements :
33
34 =head2 C<run>
35
36 =cut
37
38 sub run {
39  my $self = shift;
40  my $conf = shift;
41  my $status = 0;
42  my $code;
43  for (@{$conf->repos}) {
44   $_->chdir or next;
45   $status = $_->run($conf, @{$self->args});
46   $code = $self->report($conf, $_, $status) unless defined $code;
47   last if $code & LAST;
48   if ($code & REDO) {
49    undef $code; # Don't save it, that would be very dumb
50    redo;
51   }
52   undef $code unless $code & SAVE;
53  }
54  $conf->cwd_repo->chdir;
55  return wantarray ? ($status, $code) : $status;
56 }
57
58 =head1 SEE ALSO
59
60 L<rgit>.
61
62 =head1 AUTHOR
63
64 Vincent Pit, C<< <perl at profvince.com> >>, L<http://profvince.com>.
65
66 You can contact me by mail or on C<irc.perl.org> (vincent).
67
68 =head1 BUGS
69
70 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.
71
72 =head1 SUPPORT
73
74 You can find documentation for this module with the perldoc command.
75
76     perldoc App::Rgit::Command::Each
77
78 =head1 COPYRIGHT & LICENSE
79
80 Copyright 2008 Vincent Pit, all rights reserved.
81
82 This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
83
84 =cut
85
86 1; # End of App::Rgit::Command::Each