Dist-Zilla-Plugin-Version-FromSubversion
view release on metacpan or search on metacpan
lib/Dist/Zilla/Plugin/Version/FromSubversion.pm view on Meta::CPAN
require SVN::Client;
my $svn = SVN::Client->new or die "can't initialize SVN::Client";
$svn->info("", undef, undef, sub { $rev = $_[1]->rev }, 0);
my $dist_ini = $root->file('dist.ini')->absolute->stringify;
if (-f $dist_ini && $self->fallback_revision) {
my $kwd = $svn->propget('svn:keywords', $dist_ini, undef, 0);
unless (exists $kwd->{$dist_ini}
&& grep /^(?:Rev(?:ision)?|LastChangedRevision)$/, split ' ', $kwd->{$dist_ini}) {
$self->log("enable svn:keywords expansion on dist.ini to activate fallback_revision:\n svn propset svn:keywords \"Revision\" dist.ini");
}
}
if (@{ $self->fallback_file }) {
foreach my $file (@{ $self->fallback_revision }) {
my $path = $root->file($file)->absolute->stringify;
my $kwd = $svn->propget('svn:keywords', $path, undef, 0);
unless (exists $kwd->{$path}) {
# TODO fix path to use platform path separators
$self->log_fatal(
"enable svn:keywords expansion on $file to activate fallback_file:\n"
." svn propset svn:keywords \"Revision\" $file");
} else {
my @kwd_rev = grep /^(?:Rev(?:ision)?|LastChangedRevision)$/, split ' ', $kwd->{$path};
unless (@kwd_rev) {
$self->log_fatal(
"enable svn:keywords expansion on $file to activate fallback_file:\n"
." svn propset svn:keywords \"$kwd->{$path} Revision\" $file");
} else {
my ($kwd) = $self->_extract_rev_keyword($path, @kwd_rev);
unless (defined $kwd) {
$self->log_fatal(
"keyword $kwd_rev[0] is missing in $path"
);
}
}
}
}
( run in 2.525 seconds using v1.01-cache-2.11-cpan-71847e10f99 )