/usr/local/CPAN/CGI-Wiki-Kwiki/Build.PL
use Module::Build;
use File::Spec;
use File::Copy;
# This magically subclasses Module::Build. We override the install action
# to install the template files for us.
my $class = Module::Build->subclass(
code => q{
sub ACTION_install {
my $self = shift;
my $ret = $self->SUPER::ACTION_install(@_);
# Slightly hacky. We require one of the modules that we just installed.
# then, we pull it's path out of %INC, strip off the filename, and
# install the templates there. Well, they have to go _somewhere_, and
# perl doens't have a good place fir this stuff otherwise.
require CGI::Wiki::Kwiki or die;
my (undef, $path, undef) = File::Spec->splitpath($INC{'CGI/Wiki/Kwiki.pm'});
mkdir( File::Spec->catfile( $path, "Kwiki" ) );
die "Can't make template install folder: $!\n" unless (-d File::Spec->catfile( $path, "Kwiki" ) );
mkdir( File::Spec->catfile( $path, "Kwiki", "templates" ) );
die "Can't make template install folder: $!\n" unless (-d File::Spec->catfile( $path, "Kwiki", "templates" ) );
print "Installing templates to $path/Kwiki/templates\n";
opendir TEMPLATES, "templates" or die "Can't open template source folder: $!\n";
for (grep { /\.(tt|css)$/ } readdir(TEMPLATES)) {
print " installing template $_\n";
File::Copy::copy(
File::Spec->catfile('templates', $_),
File::Spec->catfile( $path, "Kwiki", "templates", $_ )
) or die "Error copying $_: $!\n";;
}
closedir(TEMPLATES);
return $ret;
}
},
);
my $build = MyModuleBuilder->new(
module_name => 'CGI::Wiki::Kwiki',
license => 'perl',
requires => {
'perl' => '5.6.0',
'CGI' => 0,
'CGI::Wiki' => '0.56', # for enhanced recent changes
'CGI::Wiki::Plugin::Diff' => '0.07', # earlier is buggy
'Template' => 0,
'Getopt::Long' => 0,
'Time::Piece' => 0,
'CGI::Wiki::Search::DB' => 0,
'Algorithm::Merge' => 0,
'CGI::Wiki::Formatter::UseMod' => 0,
},
recommends => {
'CGI::Wiki::Formatter::Multiple' => 0.02,# if you want multiple formatters
'DBD::SQLite' => 0, # for testing
'DBI' => 0, # for testing
'Test::HTML::Content' => 0, # for testing
},
build_requires => {
'Digest::MD5' => 0, #for testing,didn't make optional as CGI::Wiki uses
'Test::More' => 0,
},
create_makefile_pl => 'passthrough',
create_readme => 1,
script_files => [
'bin/cgi-wiki-kwiki-install',
'bin/cgi-wiki-kwiki-import',
'bin/cgi-wiki-kwiki-cgi-script',
],
);
$build->create_build_script;