App-git-ship
view release on metacpan or search on metacpan
lib/App/git/ship/perl.pm view on Meta::CPAN
package App::git::ship::perl;
use Mojo::Base 'App::git::ship';
use Module::CPANfile;
use Mojo::File qw(path tempfile);
use Mojo::Util 'decode';
use POSIX qw(setlocale strftime LC_TIME);
use Pod::Markdown;
use constant DEBUG => $ENV{GIT_SHIP_DEBUG} || 0;
my $CONTRIB_END_RE = qr{^=head1};
my $CONTRIB_NAME_EMAIL_RE = qr{^(\w[\w\s]*\w) - C<(.+)>$};
my $CONTRIB_NAME_RE = qr{^(\w[\w\s]*\w)$};
my $CONTRIB_START_RE = qr{^=head1 AUTHOR};
my $VERSION_RE = qr{\W*\b(\d+\.[\d_]+)\b};
lib/App/git/ship/perl.pm view on Meta::CPAN
open my $README, '>:encoding(UTF-8)', 'README.md' or die "Write README.md: $!";
my $parser = Pod::Markdown->new;
$parser->output_fh($README);
$parser->parse_string_document(path($self->config('main_module_path'))->slurp);
say '# Generated README.md' unless $self->SILENT;
}
sub _timestamp_to_changes {
my $self = shift;
my $changelog = $self->config('changelog_filename');
my $loc = setlocale(LC_TIME);
my $release_line;
$release_line = sub {
my $v = shift;
my $str = $self->config('new_version_format');
$str =~ s!(%-?\d*)v!{ sprintf "${1}s", $v }!e;
setlocale LC_TIME, 'C';
$str = strftime $str, localtime;
setlocale LC_TIME, $loc;
return $str;
};
local @ARGV = $changelog;
local $^I = '';
while (<>) {
$self->config(next_version => $1)
if s/^$VERSION_RE\x20*(?:Not Released)?\x20*([\r\n]+)/{ $release_line->($1) . $2 }/e;
print; # print back to same file
}
( run in 0.439 second using v1.01-cache-2.11-cpan-ceb78f64989 )