Mason applications and Module::Build

"Keefer, Tim" <[email protected]> Sat, 6 Mar 2010 12:40:11 -0700
Newsgroups gmane.comp.web.mason.devel
Message-ID <CA6FF339033B92498BEB527D2FBF8AE26D23AE9865@DEN-MEXMS-002.corp.ebay.com>
Hi,

Does anyone know if there's already some code that supports packaging HTML::Mason into a CPAN distributions? I've written a Module::Build subclass that works really well for me and I'm wondering if it would be useful for others. I'm also looking for advice about what CPAN namespace it could go under. However, I don't want to go through the trouble of putting this on CPAN if there's already something that does this. Below is a section of the docs that should give you a better idea of what I'm talking about.

Cheers,
-Tim

=head1 Name

{some name} - a subclass of Module::Build to perform custom installs

=head1 Description

Use this module instead of Module::Build (which it subclasses).  Use
any or all of the Module::Build constructor keys as needed.

=head1 Setting Up Your Application

=head2 Application Layout

This the typical directory structure for an application

    Apps-MyApp/
        Build.PL
        Changes
        MANIFEST
        MANIFEST.SKIP
        INSTALL.SKIP
        conf/
                _app.conf
                _myapachevhost.conf
                app.rules
        html/
                autohandler.mpl
                css/
                img/
                inc/
                        footer.html
                        header.html
                index.html
        lib/
                Apps/
                        MyApp.pm
                        MyApp/
                           Foo.pm
        t/
                01use.t
                02myapp.t

=head2 Build and Deploy

    perl Build.PL
    ./Build test     # runs the application tests
    ./Build install  # install the application
    ./Build dist     # build the application tarbal

=over 4

=head1 Setting up the application's Aeon Build.PL script

=over 4

=item Sample Build.PL

    use strict;
    use File::HomeDir;

    my $build = {some name}->new(
        install_base_default => ( File::HomeDir->my_home . "/releases" ),
        get_options => {
            env   =>  { type => '=s' },
            rules =>  { type => '=s' },
            install_base  => { type => '=s' },
        },
        apache_conf        => 'conf/myapachevhost.conf',
        license                => 'perl',
        module_name        => 'Apps::MyApp',
        requires           => {
            'perl'         => '5.8.1',
        },
        create_makefile_pl  => 'passthrough',
        dist_abstract => 'Mason site for Apps Foo',
        script_files        => [ glob('bin/*') ],
        'recursive_test_files' => 1,
    );

    $build->create_build_script;

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev