File Coverage

blib/lib/App/GitGot/Command/push.pm
Criterion Covered Total %
statement 25 31 80.6
branch 4 6 66.6
condition 1 3 33.3
subroutine 8 10 80.0
pod n/a
total 38 50 76.0


line stmt bran cond sub pod time code
1             package App::GitGot::Command::push;
2             our $AUTHORITY = 'cpan:GENEHACK';
3             $App::GitGot::Command::push::VERSION = '1.337';
4             # ABSTRACT: Push local changes to the default remote in git repos
5 15     15   8954 use 5.014;
  15         62  
6              
7 15     15   92 use Data::Dumper;
  15         46  
  15         884  
8 15     15   130 use Try::Tiny;
  15         30  
  15         983  
9              
10 15     15   127 use App::GitGot -command;
  15         33  
  15         146  
11              
12 15     15   5748 use Moo;
  15         33  
  15         99  
13             extends 'App::GitGot::Command';
14 15     15   5054 use namespace::autoclean;
  15         38  
  15         107  
15              
16             # incremental output looks nicer for this command...
17             STDOUT->autoflush(1);
18 2     2   9 sub _use_io_page { 0 }
19              
20             sub _execute {
21 2     2   7 my( $self, $opt, $args ) = @_;
22              
23 2         11 my $max_len = $self->max_length_of_an_active_repo_label;
24              
25 2         39 REPO: for my $repo ( $self->active_repos ) {
26 8 50       122 next REPO unless $repo->type eq 'git';
27              
28 8 50 33     27 unless ( $repo->current_remote_branch and $repo->cherry ) {
29 8 100       198 printf "%3d) %-${max_len}s : Nothing to push\n",
30             $repo->number , $repo->label unless $self->quiet;
31 8         421 next REPO;
32             }
33              
34             try {
35 0     0     printf "%3d) %-${max_len}s : ", $repo->number , $repo->label;
36             # really wish this gave _some_ kind of output...
37 0           my @output = $repo->push;
38 0           printf "%s\n", $self->major_change( 'PUSHED' );
39             }
40             catch {
41 0     0     say STDERR $self->error( 'ERROR: Problem with push on repo ' , $repo->label );
42 0           say STDERR "\n" , Dumper $_;
43 0           };
44             }
45             }
46              
47             1;
48              
49             ## FIXME docs
50              
51             __END__