Dist-Zilla-Plugin-Subversion-Check
view release on metacpan or search on metacpan
lib/Dist/Zilla/Plugin/Subversion/Check.pm view on Meta::CPAN
has '_repo_head_revision' => ( is => 'ro', isa => 'Int', lazy => 1,
default => sub {
my $self = shift;
my $rev;
$self->svn->info("", undef, 'HEAD', sub { $rev = $_[1]->rev }, 0);
return($rev);
}
);
has '_svn_status' => ( is => 'ro', isa => 'HashRef[ArrayRef[Str]]', lazy_build => 1 );
sub _build__svn_status {
my $self = shift;
my $ret = { 'untracked' => [], 'added' => [], 'missing' => [], 'deleted' => [],
'modified' => [], 'merged' => [], 'conflicted' => [] };
$self->svn->status('', 'HEAD', sub {
if($_[1]->text_status == 2) { push(@{$ret->{'untracked'}}, $_[0]); }
if($_[1]->text_status == 4) { push(@{$ret->{'added'}}, $_[0]); }
if($_[1]->text_status == 5) { push(@{$ret->{'missing'}}, $_[0]); }
if($_[1]->text_status == 6) { push(@{$ret->{'deleted'}}, $_[0]); }
if($_[1]->text_status == 8) { push(@{$ret->{'modified'}}, $_[0]); }
if($_[1]->text_status == 9) { push(@{$ret->{'merged'}}, $_[0]); }
if($_[1]->text_status == 10) { push(@{$ret->{'conflicted'}}, $_[0]); }
}, 1, 1, 1, 0);
return($ret);
}
foreach my $i ('untracked', 'added', 'missing', 'deleted', 'modified', 'merged', 'conflicted') {
has '_'.$i.'_files' => (
is => 'ro', isa => 'ArrayRef[Str]', lazy => 1,
traits => [ 'Array' ],
default => sub {
my $self = shift;
return($self->_svn_status->{$i});
},
handles => {
'_'.$i.'_files_count' => 'count',
},
);
}
( run in 1.835 second using v1.01-cache-2.11-cpan-5f2e87ce722 )