The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Bigtop::Backend::Init::Std - Bigtop backend which works sort of like h2xs

SYNOPSIS

If your bigtop file looks like this:

    config {
        build_dir `/home/yourname`;
        app_dir   `appsubdir`;
        Init Std {}
    }
    app App::Name {
    }

when you type

    bigtop --create your.bigtop Init

or

    bigtop --create your.bigtop all

this module will generate the build directory as

    /home/yourname/appsubdir

Then it will make subdirectories: t, lib, and docs. Then it will make files: Changes, MANIFEST, MANIFEST.SKIP, README, and Build.PL. Finally, it will copy your.bigtop into the docs dir of under appsubdir.

As with any backend, you can include no_gen 1; in its config block:

    config {
        Init Std { no_gen 1; }
    }

Then, no files will be generated. But, you can also exclude indiviual files it would build. Simply list the file name as a keyword and give the value no_gen:

    config {
        Init Std {
            MANIFEST no_gen;
            Changes  no_gen;
        }
    }

If you are in create mode and your config does not include app_dir, one will be formed from the app name, in the manner of h2xs. So, in the above example it would be

    /home/yourname/App-Name

Outside of create mode, the current directory is used for building, if it looks like a plausible build directory (it has a Build.PL, etc). In that case, having a base_dir and/or app_dir in your config will result in warning(s) that they are being ignored.

KEYWORDS

This module registers app level keywords: authors, contact_us, copyright_holder, license_text, and the now deprecated email (which is a synonymn for contact_us). These are also regiersted by Bigtop::Control and they have the same meaning there.

It actually pays no attention to the rest of the app section of the bigtop input, except to build the default app_dir from the app_name.

METHODS

backend_block_keywords

Tells tentmaker that I understand these config section backend block keywords:

    no_gen
    Build_PL
    Changes
    README
    MANIFEST
    MANIFEST_SKIP
    template
what_do_you_make

Tells tentmaker what this module makes. Summary: roughly what h2xs makes.

validate_build_dir

Called by Bigtop::Parser to make sure a non-create build is happening in a valid build dir.

gen_Init

Called by Bigtop::Parser to get me to do my thing.

output_cgi

What I call on the various AST packages to do my thing.

init_simple_file

What I call to build each regular file (like Changes, Build.PL, etc.).

setup_template

Called by Bigtop::Parser so the user can substitute an alternate template for the hard coded one here.

AUTHOR

Phil Crow <crow.phil@gmail.com>

COPYRIGHT and LICENSE

Copyright (C) 2005 by Phil Crow

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available.