| Dist-Zilla documentation | Contained in the Dist-Zilla distribution. |
Dist::Zilla::App::Command::new - mint a new dist
version 4.200008
Creates a new Dist-Zilla based distribution under the current directory.
$ dzil new Main::Module::Name
There are two arguments, -p and -P. -P specify the minting profile
provider and -p - the profile name.
The default profile provider first looks in the ~/.dzil/profiles/$profile_name and then among standard profiles, shipped with Dist::Zilla. For example:
$ dzil new -p work Corporate::Library
This command would instruct dzil to look in ~/.dzil/profiles/work for a
profile.ini (or other "profile" config file). If no profile name is given,
dzil will look for the default profile. If no default directory
exists, it will use a very simple configuration shipped with Dist::Zilla.
$ dzil new -P Foo Corporate::Library
This command would instruct dzil to consult the Foo provider about the
directory of 'default' profile.
Ricardo SIGNES <rjbs@cpan.org>
This software is copyright (c) 2011 by Ricardo SIGNES.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
| Dist-Zilla documentation | Contained in the Dist-Zilla distribution. |
use strict; use warnings; package Dist::Zilla::App::Command::new; BEGIN { $Dist::Zilla::App::Command::new::VERSION = '4.200008'; } # ABSTRACT: mint a new dist use Dist::Zilla::App -command; use MooseX::Types::Perl qw(DistName ModuleName); use Moose::Autobox; use Path::Class; sub abstract { 'mint a new dist' } sub usage_desc { '%c %o <ModuleName>' } sub opt_spec { [ 'profile|p=s', 'name of the profile to use', { default => 'default' } ], [ 'provider|P=s', 'name of the profile provider to use', { default => 'Default' } ], # [ 'module|m=s@', 'module(s) to create; may be given many times' ], } sub validate_args { my ($self, $opt, $args) = @_; $self->usage_error('dzil new takes exactly one argument') if @$args != 1; my $name = $args->[0]; $name =~ s/::/-/g if is_ModuleName($name) and not is_DistName($name); $self->usage_error("$name is not a valid distribution name") unless is_DistName($name); $args->[0] = $name; } sub execute { my ($self, $opt, $arg) = @_; my $dist = $arg->[0]; require Dist::Zilla::Dist::Minter; my $minter = Dist::Zilla::Dist::Minter->_new_from_profile( [ $opt->provider, $opt->profile ], { chrome => $self->app->chrome, name => $dist, _global_stashes => $self->app->_build_global_stashes, }, ); $minter->mint_dist({ # modules => $opt->module, }); } 1; __END__