
Module::Setup - a simple module maker "yet another Module::Start(?:er)?"

simply use
$ module-setup Foo::Bar
make flavor
$ module-setup --init catalyst-action # create a "catalyst actions" flavor
edit for flavor
$ cd ~/.module-setup/flavor/catalyst-action/template && some files edit for catalyst action templates
use flavor
$ module-setup Foo catalyst-action # create to Catalyst::Action::Foo module
redistribute pack for flavor
$ module-setup --pack MyFlavorCatalystAction catalyst-action > MyFlavorCatalystAction.pm
using redistributed flavor
$ module-setup --direct --flavor-class=+MyFlavorCatalystAction New::Class
importing redistributed flavor
$ module-setup --init --flavor-class=+MyFlavorCatalystAction new_flavor
install additional template
$ module-setup --flavor-class=+MyFlavorCatalystDBIC --additional=DBIC catalyst
redistribute pack for additional template
$ module-setup --pack --additional=DBIC MyFlavorCatalystDBIC catalyst > MyFlavorCatalystDBIC.pm
redistribute pack without additional template
$ module-setup --pack --without-additional MyFlavorCatalyst catalyst > MyFlavorCatalyst.pm
for git
$ module-setup --plugin=VC::Git Foo::Bar # or edit your ~/.module-setup/flavor/foo/config.yaml

Module::Setup is very simply module start kit.
When the module-setup command is executed first, a necessary template for ~/.module-setup directory is copied.

Module::Starter is very useful module. However customize of module template is complex.
If Module::Starter::PBP is used, do you solve it?
Yes, but switch of two or more templates is complex.
If Module::Setup is used, switch of template flavor is easy.
flavor customized uniquely becomes the form which can be redistributed by "module-setup --pack".
if incorporating Module::Setup in your application, you can make Helper which is well alike of Catalyst::Helper.

use Module::Setup;
local $ENV{MODULE_SETUP_DIR} = '/tmp/module-setup'; # dont use ~/.module-setup directory
my $options = {
# see setup_options method
};
my $pmsetup = Module::Setup->new(
options => $options,
argv => [qw/ New::Module foo_flavor /],
);
$pmsetup->run; # create New::Module module with foo_flavor flavor
Module::Setup considers as possible that it can use as Helper-toolkit for other applications. but Module::Setup has many dependence modules. I hear "Module::Setup is very not usefl for my application helper tool, because many dependence." well.
The Core function of Module::Setup is split to another distribution in conclusion. The name considered now is Module::Setup::Core. It leaves Flavors, Plugins and module-setup script to Module::Setup.
Really required dependence for Core is lessened by this thing.
It develops in http://github.com/yappo/p5-Module-Setup-Core and Module::Setup's core-branch.

Kazuhiro Osawa <yappo <at> shibuya <döt> pl>
walf443
hidek
tokuhirom
typester
gfx
charsbar

Module::Setup::Plugin, module-setup
this module's base code is pmsetup written by Tatsuhiko Miyagawa.
some pmsetup scripts are in a http://svn.coderepos.org/share/lang/perl/misc/pmsetup

git clone git://github.com/yappo/p5-Module-Setup.git Module::Setup is git repository is hosted at L<http://github.com/yappo/p5-Module-Setup>. patches and collaborators are welcome.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.