AI-Ollama-Client
view release on metacpan or search on metacpan
Makefile.PL view on Meta::CPAN
# -*- mode: perl; c-basic-offset: 4; indent-tabs-mode: nil; -*-
use strict;
use ExtUtils::MakeMaker qw(WriteMakefile);
# See lib/ExtUtils/MakeMaker.pm for details of how to influence
# the contents of the Makefile that is written.
# Normalize version strings like 6.30_02 to 6.3002,
# so that we can do numerical comparisons on it.
my $eumm_version = $ExtUtils::MakeMaker::VERSION;
$eumm_version =~ s/_//;
my $module = 'AI::Ollama::Client';
(my $main_file = "lib/$module.pm" ) =~ s!::!/!g;
(my $distbase = $module) =~ s!::!-!g;
my $distlink = $distbase;
my @tests = map { glob $_ } 't/*.t', 't/*/*.t';
my %module = (
NAME => $module,
AUTHOR => q{Max Maischein <corion@cpan.org>},
VERSION_FROM => $main_file,
ABSTRACT_FROM => $main_file,
META_MERGE => {
"meta-spec" => { version => 2 },
resources => {
repository => {
web => "https://github.com/Corion/$distlink",
url => "git://github.com/Corion/$distlink.git",
type => 'git',
},
bugtracker => {
web => "https://github.com/Corion/$distbase/issues",
# mailto => 'meta-bugs@example.com',
},
license => "https://dev.perl.org/licenses/",
},
dynamic_config => 0, # we promise to keep META.* up-to-date
x_static_install => 1, # we are pure Perl and don't do anything fancy
},
MIN_PERL_VERSION => '5.020', # I use signatures
'LICENSE'=> 'artistic_2',
PL_FILES => {},
CONFIGURE_REQUIRES => {
'ExtUtils::MakeMaker' => 0,
'File::ShareDir::Install' => 0,
},
BUILD_REQUIRES => {
'strict' => 0,
},
PREREQ_PM => {
'stable' => '0.031',
'experimental' => '0.031',
'Carp' => 0,
'File::ShareDir' => 0,
'Future' => 0,
'Future::Mojo' => 0,
'Future::Utils' => 0,
'Future::Queue' => 0,
'Moo' => 2,
'Mojolicious' => 9,
'Mojo::JSON' => 0,
'Mojo::URL' => 0,
'Mojo::UserAgent' => 0,
'OpenAPI::Modern' => 0,
'PerlX::Maybe' => 0,
'Role::EventEmitter' => 0,
'URI::Template' => 0,
'YAML::PP' => 0,
},
TEST_REQUIRES => {
Makefile.PL view on Meta::CPAN
perl Makefile.PL
make
make test
make install
INSTALL
pod_section($file, 'REPOSITORY'),
pod_section($file, 'SUPPORT'),
pod_section($file, 'TALKS'),
pod_section($file, 'KNOWN ISSUES'),
pod_section($file, 'BUG TRACKER'),
pod_section($file, 'CONTRIBUTING'),
pod_section($file, 'SEE ALSO'),
pod_section($file, 'AUTHOR'),
pod_section($file, 'LICENSE' ),
pod_section($file, 'COPYRIGHT' ),
;
update_file( 'README', $readme );
};
# README.mkdn is the documentation that will be shown as the main
# page of the repository on Github. Hence we recreate the POD here
# as Markdown
eval {
require Pod::Markdown;
my $parser = Pod::Markdown->new();
# Read POD from Module.pm and write to README
$parser->parse_from_file($_[0]);
my $readme_mkdn = <<STATUS . $parser->as_markdown;
[](https://github.com/Corion/$distbase/actions?query=workflow%3Awindows)
[](https://github.com/Corion/$distbase/actions?query=workflow%3Amacos)
[](https://github.com/Corion/$distbase/actions?query=workflow%3Alinux)
STATUS
update_file( 'README.mkdn', $readme_mkdn );
};
}
sub pod_section {
my( $filename, $section, $remove_heading ) = @_;
open my $fh, '<', $filename
or die "Couldn't read '$filename': $!";
my @section =
grep { /^=head1\s+$section/.../^=/ } <$fh>;
# Trim the section
if( @section ) {
pop @section if $section[-1] =~ /^=/;
shift @section if $remove_heading;
pop @section
while @section and $section[-1] =~ /^\s*$/;
shift @section
while @section and $section[0] =~ /^\s*$/;
};
@section = map { $_ =~ s!^=\w+\s+!!; $_ } @section;
return join "", @section;
}
sub regen_EXAMPLES {
my $perl = $^X;
if ($perl =~/\s/) {
$perl = qq{"$perl"};
};
(my $example_file = $main_file) =~ s!\.pm$!/Examples.pm!;
my $examples = `$perl -w examples/gen_examples_pod.pl`;
if ($examples) {
warn "(Re)Creating $example_file\n";
$examples =~ s/\r\n/\n/g;
update_file( $example_file, $examples );
};
};
sub update_file {
my( $filename, $new_content ) = @_;
my $content;
if( -f $filename ) {
open my $fh, '<:raw:encoding(UTF-8)', $filename
or die "Couldn't read '$filename': $!";
local $/;
$content = <$fh>;
};
if( $content ne $new_content ) {
if( open my $fh, '>:raw:encoding(UTF-8)', $filename ) {
print $fh $new_content;
} else {
warn "Couldn't (re)write '$filename': $!";
};
};
}
( run in 0.580 second using v1.01-cache-2.11-cpan-39bf76dae61 )