The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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.