package Module::New::Recipe::Dist;

use strict;
use warnings;
use Module::New::Recipe;
use Module::New::Command::Basic;

available_options qw( make=s test|t=s@ edit|e no_dirs xs );

flow {





  create_files(qw( MainModule ));


  edit_mainfile( optional => 1 );



=head1 NAME

Module::New::Recipe::Dist - create a new distribution

=head1 USAGE

From the shell/command line:

=over 4

=item module_new dist Module::Name

creates C<Module-Name> directory for the distribution, and C<trunk>, C<branches>, C<tags> directories there, and also several files and tests (including C<lib/Module/>) in the <Module-Name/trunk> directory.


=head1 OPTIONS

=over 4

=item in

  module_new dist Module::Name --in t

creates a distribution in C<t/> directory, instead of the current directory.

=item no_dirs

  module_new dist Module::Name --no_dirs

doesn't creates C<Module-Name/trunk>, C<Module-Name/branches>, C<Module-Name/tags> directories for C<subversion>, and creates various files including C<lib/Module/> just under the C<Module-Name> directory.

=item xs

  module_new dist Module::Name --xs

creates extra XS stuff like C<Name.xs>, C<Name.h> and C<ppport.h> (if you have installed L<Devel::PPPort>). Also, the content of C<lib/Module/> changes to load L<XSLoader>.

=item make

  module_new dist Module::Name --make=ModuleBuild

by default, L<Module::New> creates L<ExtUtils::MakeMaker::CPANfile>-based C<Makefile.PL>, but with this option, you can make it to create C<Build.PL> to use L<Module::Build> (set this to C<ModuleBuild> or C<MB> for shortcut), or C<Makefile.PL> powered by L<ExtUtils::MakeMaker> (set this to C<MakeMaker>, or C<EUMM>).

=item edit

  module_new dist Module::Name --edit

If set to true, you can edit C<lib/Module/> you created.


=head1 AUTHOR

Kenichi Ishigaki, E<lt>ishigaki@cpan.orgE<gt>


Copyright (C) 2007-2009 by Kenichi Ishigaki.

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