#!/usr/bin/perl

use Distribution::Cooker;

Distribution::Cooker->run( @ARGV );

__END__

=encoding utf8

=head1 NAME

dist_cooker - create a Perl distribution skeleton from personal templates

=head1 SYNOPSIS

	# from the command line, to create a distribution for Module::Name
	% dist_cooker Module::Name
	Description> ...
	Repository> ...

=head1 DESCRIPTION

C<dist_cooker> builds a Perl distribution skeleton from template
files. You create the templates however you like.

By default, I assume my own favorite values, and haven't made these
customizable yet.

=over 4

=item Your distribution template directory is F<~/.templates/dist_cooker>

=item Your module template name is F<lib/Foo.pm>

=back

When C<cook> processes the templates, it provides definitions for
these template variables:

=over 4

=item author_name    => the name of the module author

The author name is the first true value of the DIST_COOKER_AUTHOR
environment variable, the value of `git config user.name`, or a
default value.

=item cooker_version => version of Distribution::Cooker

=item cwd            => the current working directory of the new module

=item description    => the module description

Taken from the prompt

=item dir            => path to module file

Derived from the module name

=item dist           => dist name (Foo-Bar)

Derived from the module name

=item email          => author email

The author name is the first true value of the DIST_COOKER_EMAIL
environment variable, the value of `git config user.email`, or a
default value.

=item module         => the package name (Foo::Bar)

Taken from the command-line arguments

=item module_path    => module path under lib/ (Foo/Bar.pm)

Derived from the module name

=item repo_name      => lowercase module with hyphens (foo-bar)

Taken from the prompt

=item template_path  => the source of the template files

Taken from the configuration

=item year           => the current year

=back

=head2 Writing a subclass

To provide a different set of defaults, or more customizable behavior,
create your own subclass of C<Distribution::Cooker>. Specialize the
parts that you need.

=head1 TO DO

C<Distribution::Cooker> needs to provide a way for people to override
the defaults without having to write a subclass.

=head1 SEE ALSO

Other modules, such as C<Module:Starter>, do a similar job but don't
give you as much flexibility with your templates.

=head1 SOURCE AVAILABILITY

This module is in Github:

	http://github.com/briandfoy/distribution-cooker/

=head1 AUTHOR

brian d foy, C<< <briandfoy@pobox.com> >>

=head1 COPYRIGHT AND LICENSE

Copyright © 2008-2024, brian d foy <briandfoy@pobox.com>. All rights reserved.

You may redistribute this under the same terms as Perl itself.

=cut
