The original way to create a Catalyst skeleton is to run
catalyst.pl MyApp. This creates a lot of nice files to get you started.
dzil newbasically does the same thing for a generic cpan module. Honestly, without any plugins
dzil newisn't that useful. However, once you add Git::Init , you remove several steps from the creation of a new module and repository. Git::Init also makes your first commit of everything it added. I got to thinking why on earth would I want to do the following to get a cat module going and convert it to dzil.
catalyst.pl MyApp && cd MyApp vi dist.ini # and add numerous lines rm Makefile.PL README t/* # and maybe more since dzil is better at managing these git init git add . git commit
when I could just be doing this
dzil new -p catalyst MyApp
A lot simpler huh? to get you started you need a few things but then creating cat apps will be easy.
first you can run
dzil setupor if your version of dzil doesn't support that yet, you need to create the following
~/.dzil/config.inifile by hand obviously fill in your own credentials and license preferences. This file is pretty much needed for any
Next you need to create a minting profile (not necessary for barebones doesn't do much for you). run
mkdir -p ~/.dzil/profiles/catalyst/(note: catalyst is arbitrary, it can be anything). now create a
profile.iniin that directory. The only mandatory line in this file for this to work is the [Catalyst ...] one, I think you'll want the other two however. You also want to set
AUTHOR="your name email@example.com that's how Catalyst::Helper inserts it into its files (I'll probably work on fixing helper later).
Now you can just run
dzil new -p catalyst MyApp. Hopefully, this simplifies your catalyst app creation a little bit.
Good patches are welcome, so are feature suggestions and bug reports. Also I registered it as Dist::Zilla::Plugin::Catalyst So if there are any other plugins that you think could be useful that are specific to Catalyst I'd be willing to add them.
Special thanks to Tomas Doran who helped me (ok... he wrote most of it) create this module.