Spec::Functions qw/catfile rel2abs/;
use Getopt::Long 2.36 'GetOptionsFromArray';
use JSON::MaybeXS qw/decode_json/;
use Module::Runtime 'require_module';
use Text::Template;
use App::ModuleBuildTiny
fill_in($template, \%opts));
}
sub read_json {
my $filename = shift;
-f $filename or return;
return decode_json(read_binary($filename));
}
sub write_json {
my ($filename, $content) = @_;
my $d
ame);
mkdir $dirname if not -d $dirname;
my $json = JSON::MaybeXS->new->utf8->pretty->canonical->encode($content);
return write_binary($filename, $json);
}
sub bump_versions {
my (%opts) = @_;
r
>parse_characters(1);
$parser->parse_file($filename);
return decode_utf8($content);
}
sub load_jsonyaml {
my $file = shift;
require Parse::CPAN::Meta;
return Parse::CPAN::Meta->load_file($file);
ad_mergedata {
my $mergefile = shift;
if (defined $mergefile and -r $mergefile) {
return load_jsonyaml($mergefile);
}
return;
}
sub distname {
my $extra = shift;
return delete $extra->{name}
%opts) = @_;
my @prereqs;
if (-f 'prereqs.json') {
push @prereqs, load_jsonyaml('prereqs.json');
}
if (-f 'prereqs.yml') {
push @prereqs, load_jsonyaml('prereqs.yml');
}
if (-f 'cpanfile')