Dist-Zilla-Plugin-Subversion
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
lib/Dist/Zilla/Role/Subversion.pm view on Meta::CPAN
use 5.010;
use strict;
use warnings;
use utf8;
package Dist::Zilla::Role::Subversion;
BEGIN {
$Dist::Zilla::Role::Subversion::VERSION = '1.101590';
}
# ABSTRACT: does Subversion actions for a distribution
use Moose::Role;
with 'Dist::Zilla::Role::Plugin' => { -version => 4.101550 };
use Cwd;
use English qw(-no_match_vars);
use Modern::Perl;
use MooseX::Types::URI 'Uri';
use Path::Class qw(dir file);
use Readonly;
use Regexp::DefaultFlags;
use SVN::Client;
use SVN::Wc;
use namespace::autoclean;
for my $attr (qw(svn_user svn_password)) {
has $attr => (
is => 'ro',
isa => 'Str',
predicate => "_has_$attr",
);
}
has 'working_url' => (
is => 'ro',
isa => Uri,
coerce => 1,
lazy_build => 1,
);
sub _build_working_url {
my $self = shift;
my $url;
if ( $url = $self->zilla->distmeta->{resources}{repository} ) {
return URI->new($url);
}
$self->_svn->info( getcwd(), undef, undef,
sub { $url = URI->new( $ARG[1]->URL() ) }, 0 );
return $url;
}
has '_base_url' => (
is => 'ro',
isa => Uri,
coerce => 1,
lazy_build => 1,
);
sub _build__base_url {
my $self = shift;
my $url = $self->working_url->clone();
my @segments = $url->path_segments();
my %url_offset = (
trunk => -1,
branches => -2,
);
while ( my ( $segment, $offset ) = each %url_offset ) {
if ( $segments[$offset] eq $segment ) {
$url->path_segments( @segments[ 0 .. $#segments + $offset ] );
return $url;
}
}
$self->_svn->info( getcwd(), undef, undef,
sub { $url = URI->new( $ARG[1]->repos_root_URL() ) }, 0 );
return $url;
}
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.493 second using v1.00-cache-2.02-grep-82fe00e-cpan-2c419f77a38b )