/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;