App-ModuleBuildTiny
view release on metacpan or search on metacpan
lib/App/ModuleBuildTiny.pm view on Meta::CPAN
if ($opts{bump}) {
bump_versions(%opts);
$files{'Changes'}++;
push @dirty, 'Changes';
}
insert_options(\%opts, $config);
my $dist = App::ModuleBuildTiny::Dist->new(%opts, regenerate => \%files);
my @generated = grep { $files{$_} } $dist->files;
for my $filename (@generated) {
say "Updating $filename" if $opts{verbose};
write_binary($filename, $dist->get_file($filename)) if !$opts{dry_run};
}
if ($opts{commit}) {
require Git::Wrapper;
my $git = Git::Wrapper->new('.');
if ($opts{bump}) {
push @dirty, 'lib';
push @dirty, 'script' if -d 'script';
}
my $allowed = join '|', map qr{^\Q$_\E$}, @dirty;
my @modified = grep /$allowed/, $git->ls_files({ modified => 1 });
if (@modified) {
my @changes = $dist->get_changes;
my $version = 'v' . $dist->version;
my $message = $opts{message} || ($opts{bump} ? join '', $version, "\n\n", @changes : 'Regenerate');
$git->commit({ m => $message }, @dirty);
} else {
say "No modifications to commit";
}
}
}
my %prompt_for = (
open => \&prompt,
yn => \&prompt_yn,
);
my @config_items = (
lib/App/ModuleBuildTiny.pm view on Meta::CPAN
if (!$opts{json}) {
my @phases = qw/build test configure runtime/;
push @phases, 'develop' if $opts{author};
my $reqs = $prereqs->merged_requirements(\@phases);
$reqs->clear_requirement('perl');
my @modules = sort { lc $a cmp lc $b } $reqs->required_modules;
if ($opts{versions}) {
say "$_ = ", $reqs->requirements_for_module($_) for @modules;
}
else {
say for @modules;
}
}
else {
print JSON::MaybeXS->new->ascii->canonical->pretty->encode($prereqs->as_string_hash);
}
return 0;
},
regenerate => sub {
my @arguments = @_;
my $config = get_config;
lib/App/ModuleBuildTiny.pm view on Meta::CPAN
ask($config, $item, $default);
}
delete $config->{$_} for @delete_config;
write_json($config_file, $config);
}
elsif ($mode eq 'get') {
my ($key, $value) = @arguments;
my ($item) = grep { $_->[0] eq $key } @config_items;
die "No such known key $key" if not $item;
my (undef, $description, $type, $default) = @{$item};
say show_item($config, $key, $type);
}
elsif ($mode eq 'set') {
my ($key, $value) = @arguments;
my $item = grep { $_->[0] eq lc $key } @config_items;
die "No such known key $key" if not $item;
if ($item->[2] eq 'yn') {
$config->{$key} = $boolean{$value} // die "Unknown boolean value '$value'\n";
} else {
$config->{$key} = $value;
}
write_json($config_file, $config);
}
elsif ($mode eq 'list') {
for my $item (@config_items) {
my ($key, $description, $type, $default) = @{$item};
say "$key: " . show_item($config, $key, $type);
}
}
elsif ($mode eq 'reset') {
return not unlink $config_file;
}
return 0;
},
config => sub {
my @arguments = @_;
my $settings = get_settings;
lib/App/ModuleBuildTiny.pm view on Meta::CPAN
my ($key) = @{$item};
$config->{$key} = $settings->{$key} if exists $settings->{$key};
}
write_json($config_file, $config);
}
elsif ($mode eq 'get') {
my ($key, $value) = @arguments;
my ($item) = grep { $_->[0] eq $key } @config_items;
die "No such known key $key" if not $item;
my (undef, $description, $type, $default) = @{$item};
say show_item($config, $key, $type);
}
elsif ($mode eq 'set') {
my ($key, $value) = @arguments;
my $item = grep { $_->[0] eq lc $key } @config_items;
die "No such known key $key" if not $item;
$config->{$key} = $boolean{$value} // die "Unknown boolean value '$value'\n";
write_json($config_file, $config);
}
elsif ($mode eq 'list') {
for my $item (@items) {
my ($key, $description, $type, $default) = @{$item};
say "$key: " . show_item($config, $key, $type);
}
}
elsif ($mode eq 'reset') {
return not unlink $config_file;
}
return 0;
},
mint => sub {
my @arguments = @_;
lib/App/ModuleBuildTiny.pm view on Meta::CPAN
require Git::Wrapper;
my $git = Git::Wrapper->new('.');
$git->init;
$git->add(@regenerate_files, 'Changes', 'MANIFEST.SKIP', 'dist.json', '.gitignore', $module_file, grep -e, 'metamerge.json');
$git->commit({ message => 'Initial commit' });
}
return 0;
},
version => sub {
say $VERSION;
},
);
sub modulebuildtiny {
my ($action, @arguments) = @_;
die "No action given\n" unless defined $action;
my $call = $actions{$action};
die "No such action '$action' known\n" if not $call;
return $call->(@arguments);
}
lib/App/ModuleBuildTiny/Dist.pm view on Meta::CPAN
$self->write_dir($dir, $opts{verbose});
local $CWD = $dir;
my $ret = !!1;
if ($opts{build}) {
system $Config{perlpath}, 'Build.PL' and ($opts{allow_failure} or die "Could not run Build.PL");
system $Config{perlpath}, 'Build' and ($opts{allow_failure} or die "Could not run Build");
my @extralib = map { rel2abs("blib/$_") } 'arch', 'lib';
local @PERL5LIB = (@extralib, @PERL5LIB);
local @PATH = (rel2abs(catdir('blib', 'script')), @PATH);
for my $command (@{ $opts{commands} }) {
say join ' ', @{$command} if $opts{verbose};
$ret &&= not system @{$command};
}
}
else {
for my $command (@{ $opts{commands} }) {
say join ' ', @{$command} if $opts{verbose};
$ret &&= not system @{$command};
}
}
return $ret;
}
for my $method (qw/meta license/) {
no strict 'refs';
*$method = sub { my $self = shift; return $self->{$method}; };
}
script/mbtiny view on Meta::CPAN
$self->{_mbth_head1_content} .= $text;
return;
}
if (defined $self->{_mbth_subcommand_name}) {
$self->{_mbth_subcommand_name} .= $text;
return;
}
if (delete $self->{_mbth_print_desc}) {
$self->output_fh->say($1) if $text =~ /^([^.(]+)/;
}
}
__END__
=head1 NAME
mbtiny - A standalone authoring script for Module::Build::Tiny
=head1 SYNOPSIS
( run in 0.408 second using v1.01-cache-2.11-cpan-d7a12ab2c7f )